Security
Empire
Empire
2018.11.03도커로 설치하면 `` (Empire) >`` 이게 계속 출력되면서 안된다. 그래서 그냥 native 설치해야함.python2가 기본 파이썬인 상태에서 설치해야 함. 사용법은 다음을 참고. Listener는 meterpreter말고 http로 해야 제대로 동작함. meterpreter로 하면 포트 리스닝도 안하고 생성되는 stager 코드도 문법에 안맞아서 에러난다.https://null-byte.wonderhowto.com/how-to/use-powershell-empire-getting-started-with-post-exploitation-windows-hosts-0178664/ https://null-byte.wonderhowto.com/how-to/use-powershell-empire-gener..
JPEG와 EXIF의 GPS data (위도, 경도)
JPEG와 EXIF의 GPS data (위도, 경도)
2018.07.07일반적인 위도(Latitude), 경도(Longitude) 표기법위도가 N. 위도가 위로부터(북극) 얼마나 떨어져 있는지 이므로.경도가 E. 37°28'46.912000000011247"N 126°52'45.631999999983037"E인 좌표에서 위도를 십진수 도(DD)로 환산하면 다음과 같다.\\(46.912000000011247/60 = 0.78186666666685411666666666666667\\)\\((28+0.78186666666685411666666666666667)/60 = 0.47969777777778090194444444444444\\)\\(37+0.47969777777778090194444444444444 = 37.47969777777778090194444444444444\\) ..
SQL injection Mitigation : preparedStatement
SQL injection Mitigation : preparedStatement
2017.11.30SQL 구문을 미리 preparedStatement로 확정시켜 놓고 거기에 파라미터만 대입하는 형식으로 사용하면 SQL 구조가 외부 입력값에 의해서 변경되는 것을 방지할 수 있다. SQL문 실행 순서는 다음과 같다. ``` SQL 구문 분석 -> 컴파일 -> 쿼리 실행 ``` preparedStatement 사용하지 않는 동적 쿼리 구조 : id로 어떤 값이 넘어오느냐에 따라 쿼리 구조가 변경될 수 있다. ```java String sql = "select * from tbl where id=" + id; statement(sql) // 구문 분석 & 컴파일 // 쿼리 실행 ``` preparedStatement 사용하는 동적 쿼리 구조 : id에 어떤 값이 오든 쿼리 구조는 이미 확정된 상태. ```j..
Padding Oracle Attack
Padding Oracle Attack
2017.11.27length가 나누어 떨어지더라도 padding이 올바르지 않으면 Error암/복호화에 사용되는 IV는 같다.TRIPLE DES는 고려하지 않아도 되는게, 이미 그 부분에 대한 연산이 끝난 이후의 Intermediary Value(중간 값)를 구하는 것이기 때문.
LFI, Local File Inclusion
LFI, Local File Inclusion
2017.11.23LFI, Local File Inclusionhttp://php.net/manual/en/wrappers.php.php PHP에서는 ``php php://filter``를 사용해서 File IO하는 방법도 있는데, 이게 문자열로 넘어가기 때문에 필터링 우회에 사용할 수 있다.예를 들어 `` flag.txt``라는 문자열을 필터링해놓은 경우, 다음 처럼 넘겨서 우회할 수 있다.(물론 서버의 필터링에 따라 더 간단하게 우회할 수 있는 경우도 있다.)```php?fname=php://filter/convert.base64-encode/resource=flag``` 이와 비슷하지만 원격지 파일을 참조하게 되면 RFI다.
[CCE2017] Blue : 본선
[CCE2017] Blue : 본선
2017.11.22이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
python decompile
python decompile
2017.11.19https://github.com/matiasb/unpy2exe https://github.com/rocky/python-uncompyle6
MPRESS unpacking
MPRESS unpacking
2017.11.19x32`` F9`` 누르고 EntryPoint로 이동하면 `` pushad``가 있다. `` F8`` 눌러서 실행한다.보통 언패킹 이전에 이런 식으로 레지스터를 push해둔다.언패킹이 끝나면서 다시 `` popad``할 때, ESP 값이 현재 ESP 값과 동일한 상태에서 `` popad``해야 레지스터가 제대로 복원되므로 ESP에 hardware bp를 건다. ```cbphws esp,rw``` bp에 걸리면 `` jmp`` instruction이 있을건데, 여기서 OEP로 jmp한 다음Scylla를 이용해 Unpacked binary를 Dump한다. x64x64에는 `` pushad`` instruction이 없기 때문에 `` F9`` 누르고 EntryPoint로 이동하면 다음 instructions가..
WebDAV / CVE-2017-7269
WebDAV / CVE-2017-7269
2017.11.15WebDAV1. WebDAV란 무엇인가?WebDav(Web-based Distributed Authoring and Versioning)는 쉽게 말해 웹서버를 파일 시스템처럼 접근할 수 있도록 지원하는 확장된 HTTP프로토콜이다.웹서버에 올라가 있는 파일을 http 프로토콜로 관리(목록 조회, 수정, 삭제, 이동 등)할 수 있다는 장점이 있다.물론 이같은 작업은 ftp 등으로도 가능하지만, 그냥 http로 처리하기 때문에 접근성이 좋다는 점, ssl이 적용 가능하다는 점, 동영상 스트리밍에 더 유리하다는 점 등등의 장점이 있다. 1) WebDAV 특징- 파일 락킹(file locking) 지원- XML을 사용하여 데이터 교환- 간단한 설정- 쉬운 접근 제어- 웹하드 구현 용이 2) WebDAV에서 확장된..
realloc fake size
realloc fake size
2017.11.04```cint main(){ char *a = malloc(0x8); char *b = malloc(0x8); char *c = malloc(0x40); char *topguard = malloc(0x8); // modify b.size *(b-0x4) = 0x59; realloc(b, 0x8); return 0;}``` trigger & overlapchunk `` a``에서 off-by-one overflow가 발생해 `` b.size``를 수정할 수 있는 상황이라면 이를 이용해 chunk overlap할 수 있으며, 이는 `` b`` chunk의 overflow, libc_base leak으로 연계할 수 있다.```bashgdb-peda$ x/32wx 0x565580000x56558000: 0x00..
[withcon2017] calc - 복잡한 heap control
[withcon2017] calc - 복잡한 heap control
2017.11.03이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
저장매체 이미징 ( dd )
저장매체 이미징 ( dd )
2017.11.01저장매체 복제아예 비트스트림을 똑같이 복제해서 똑같은 내용의 하드를 하나 더 만드는 것.비할당 영역이나 슬랙도 모두 복제되지만, 그냥 같은 내용의 하드가 하나 더 생기는거라 분석하려면 어차피 이미징해야 편하다. 저장매체 이미징모든 물리적인 섹터를 파일 형태로 만들어 저장하는 것. 비할당 영역이나 슬랙 공간도 모두 저장되기 때문에 이를 사용해야 한다.vmdk를 hdx에 올려서 보는 것도 이미징 파일을 보는 것과 비슷하다고 볼 수 있다. 윈도우에서는 FTK Imager / dd리눅스에서는 dd를 사용할 수 있다. ```bash# dd if=/dev/sdb2 of=./sdb2.iso``` dd 사용법