vulnhub ialah salah satu taman permainan kegemaran saya, dan setiap dron sasaran di atasnya adalah permainan yang menarik. Mencari sepenuhnya semua bendera hanyalah tugas asas, dan mencapai peningkatan keistimewaan ialah matlamat utama. Saya tidak mengejar penangkapan bendera terpantas, tetapi menggunakan rantai serangan yang lengkap untuk menyerang dron sasaran sebanyak mungkin Oleh itu, beberapa kandungan dalam panduan ini mungkin tidak membantu secara langsung untuk menangkap bendera, tetapi anda sepatutnya pertimbangkan apabila berhadapan dengan sasaran sebenar.
Don sasaran "JIS-CTF: VulnUpload" mengandungi 5 bendera, kesukaran pemula dan mengambil masa purata 1.5 jam untuk menyelesaikan serangan. Anda boleh mendapatkan imej format kotak maya daripada https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ dan anda boleh memainkannya serta-merta selepas mengimport:
Mesin maya JIS ialah DHCP, dan saya perlu mengetahui IPnya. Pilihan -sn bagi nmap digunakan untuk mengesan kemandirian hos:
Tidak lama kemudian, 4 IP yang masih hidup ditemui. Antaranya, 56.1 ialah IP sistem utama saya, 56.2 ialah pelayan DHCP, dan 56.5 menunjukkan localhost-response sebagai mesin tempatan (kali), jadi IP JIS ialah 192.168.56.6.
Keutamaan pertama dalam mendapatkan IP ialah perkhidmatan analisis. Dua parameter baris arahan nmap -O dan -sV boleh digunakan di sini:
Ia boleh dilihat bahawa JIS membuka SSH (OpenSSH 7.2p2) pada port 22 dan HTTP pada port 80 (Apache httpd 2.4.18) dan dua perkhidmatan lain. Juga, sistem pengendalian adalah ubuntu. Ketiga-tiga maklumat ini akan menjadi permukaan serangan utama pada peringkat seterusnya.
Untuk perkhidmatan SSH, saya sudah biasa menyerang dari dua aspek: kata laluan yang lemah dan kelemahan sistem. Dari segi kata laluan yang lemah, saya menggunakan nama pengguna biasa dan kata laluan biasa untuk memecahkan, walaupun kebarangkaliannya rendah:
Ia tidak akan selesai dalam masa yang singkat, jadi saya Akan letak di sini dahulu dan lihat kemudian.
Dari segi mencari kelemahan sistem dalam perkhidmatan SSH, saya mengesyorkan alat searchsploit. Carian tepat untuk OpenSSH 7.2p2:
Terdapat kerentanan kebolehbilangan nama pengguna Kebetulan mencari nama pengguna yang sah akan membantu memecahkan kata laluan SSH. Cuba gunakan EXP dengan segera:
Saya telah mencubanya beberapa kali, tetapi hasilnya berbeza. Saya rasa EXP ini tidak boleh dipercayai. Mungkin syarat carian terlalu keras Tanpa nombor versi, cari openssh terus untuk melihat jika terdapat sebarang kelemahan lain:
Antaranya, terdapat dua yang boleh dipertimbangkan, iaitu peningkatan keistimewaan tempatan kelemahan dan perlaksanaan arahan jauh. Wah, sangat menggoda, tapi sayangnya, saya tidak boleh menggunakannya. Bagi yang pertama, pada masa ini tiada kubu kuat (seperti cangkerang web), dan tiada operasi peningkatan yang betul Pada masa ini, ia hanya boleh dikeluarkan dahulu, dan ia mungkin digunakan kemudian, syarat untuk eksploitasi adalah sangat ketat , dan penyerang Anda mesti mengawal soket ejen yang dimajukan, dan sasaran mesti SSH ke dalam mesin di mana penyerang mengawal soket ejen yang dimajukan Hanya selepas itu sasaran boleh memuatkan *.so untuk mencapai pelaksanaan perintah jauh. Itu sahaja, kami tidak akan mendalami kelemahan sistem SSH buat masa ini.
Semak perkhidmatan apache untuk melihat sama ada terdapat sebarang kelemahan yang boleh dieksploitasi:
Versi tepat yang ditemui semasa pengesanan perkhidmatan sebelumnya ialah apache httpd 2.4.18, jadi hanya terdapat satu memori kelemahan kebocoran.
Pada peringkat ini, kelemahan sistem hanya boleh dianalisis setakat ini Walaupun kami tahu bahawa pakej pengedaran adalah ubuntu, kami tidak mengetahui versi khusus dan seni bina sistem. Sukar untuk mencari sistem pengendalian yang tersedia dengan tepat kerentanan. Oleh itu, tidak perlu meneruskan Tahap kelemahan sistem memakan masa.
Port web yang ditemui sebelum mengakses diubah hala secara automatik ke http://192.168.56.6/login.php:
Baca Di Sana tiada maklumat yang berharga apabila memuat turun kod sumber html tidak mungkin untuk menghitung nama pengguna; ketepikan dahulu untuk melihat jika ada halaman lain.
Sebelum kira-kira 2015, mengimbas port web - mencari bahagian belakang web - log masuk ke bahagian belakang dengan kata laluan yang lemah - memuat naik ayat adalah kaedah serangan biasa dengan kadar kejayaan yang tinggi, antaranya, sama ada alamat bahagian belakang boleh didapati adalah kunci kejayaan. Dalam erti kata lain, saya perlu menemui lebih banyak kandungan di web. Secara khususnya, saya berharap untuk mencari lebih banyak fail, halaman dan subdirektori Adalah lebih baik untuk mencari fail sensitif yang dibungkus dengan kod sumber, halaman pengurusan untuk operasi dan penyelenggaraan bahagian belakang, dan subdirektori yang menyimpan logik perniagaan untuk mengembangkan permukaan serangan. Biasanya, saya menggunakan gabungan penghitungan dan merangkak untuk menemui kandungan web.
Terdapat banyak alat untuk menghitung kandungan web Sebenarnya, sendawa yang anda miliki mempunyai fungsi penghitungan subdirektori terbina dalam, tetapi ia sering diabaikan oleh anda. Lawati http://192.168.56.6/, biarkan trafik melepasi sendawa dan segera paparkan struktur direktori tapak awal:
Dayakan fungsi penghitungan subdirektori melalui alat penglibatan - temui kandungan:
Sebelum penghitungan, gunakan wappalyzer pemalam firefox untuk mengesahkan bahawa bahasa bahagian belakang ialah php:
Tetapan mudah, biarkan sendawa hanya menghitung halaman jenis php, abaikan aspx, jsp dan Bahasa lain untuk meningkatkan kecekapan:
Tidak lama kemudian, banyak halaman baharu telah disenaraikan:
Anda lihat, terdapat lebih banyak halaman dan direktori berbanding sebelum ini, seperti log keluar . php, status pelayan/. Memeriksa mereka satu persatu, tidak ada yang berharga.
Seterusnya, saya menggunakan alat lain, dirsearch, untuk menghitung semula subdirektori, melengkapkan sendawa untuk mendapatkan lebih banyak kandungan web. Kecekapan dan kebolehkonfigurasian adalah ciri dirsearch Begitu juga, gunakan pilihan --extension untuk menetapkan hanya halaman jenis php untuk dikira, mengabaikan bahasa lain seperti aspx, jsp dan sebagainya:
Daripada hasil output out.txt Terdapat 5 halaman dengan respons HTTP yang berjaya (200):
Lawati halaman ini dalam urutan dan biarkan trafik melalui sendawa Struktur direktori tapak adalah seperti berikut:
sub Direktori enumerasi, itu sahaja. Seterusnya, merangkak tapak.
Naik tapak, atau gunakan sendawa:
Tidak lama kemudian, rangkak selesai, dan banyak halaman baharu telah ditambah:
Kawan, selepas bermain sekian Sudah sekian lama dan anda tidak pernah melihat bayang bendera? Jangan risau, ia akan datang. Cari kata kunci bendera dalam peta tapak burp Item padanan pertama ialah http://192.168.56.6/admin_area/:
Dapatkan bendera pertama{7412574125871236547895214}; set akaun admin/3v1l_H@ck3r Ia mungkin akaun log masuk web atau akaun SSH. Mencari bendera mengembalikan perlawanan kedua http://192.168.56.6/flag/:
mengembalikan bendera kedua{8734509128730458630012095}.
Gunakan admin/3v1l_H@ck3r untuk cuba log masuk ke http://192.168.56.6/login.php:
Berjaya, ya Fungsi muat naik fail, semak sama ada terdapat sebarang kelemahan muat naik fail.
Hanya muat naik cangkerang web php dan cuba:
icesword.php berjaya dimuat naik, terdapat kelemahan muat naik fail sewenang-wenangnya, tetapi direktori muat naik tidak dipaparkan. Adakah anda masih ingat direktori muat naik/ dan uploaded_files/ semasa penemuan kandungan web Cuba akses http://192.168.56.6/uploads/icesword.php Mesej ralat tidak wujud. /192.168.56.6/uploaded_files. /icesword.php, tiada ralat dilaporkan tetapi halaman itu tidak mempunyai kandungan Sekurang-kurangnya jelas bahawa direktori muat naik adalah uploaded_files/.
Saya menggunakan msfvenom untuk menjana php rebound Trojan msf_private.php MSF:
Mulakan MSF dan dengar, kemudian lawati http://192.168.56.6/uploaded_files/msf_private.php untuk mendapatkan sesi meterpreter segera:
Hanya tatal ke bawah fail:
flag.txt, hint.txt menarik perhatian saya. Semaknya, flag.txt tidak mempunyai hak akses; dapatkan bendera ketiga{7645110034526579012345670} dalam hint.txt dan mesej gesaan Jika anda ingin melihat flag.txt, anda mesti mengetahui kata laluan akaun technawi:
Seterusnya, saya perlu mencari kata laluan untuk pengguna technawi. Saya bercadang untuk mencari maklumat berkaitan technawi, baik dari segi nama fail mahupun kandungan fail.
Saya menggunakan arahan carian terbina dalam meterpreter untuk mencari fail yang mengandungi kata kunci technawi dalam nama fail:
Ia menunjukkan tidak dijumpai. Pelik, kalau ada pengguna technawi, mesti ada /home/technawi/, kenapa tak jumpa satu pun? Masukkan cangkerang dan sahkan sekali lagi:
Ini betul. Jadi, anda lihat, carian terbina dalam meterpreter tidak boleh dipercayai. Saya menyemaknya satu persatu dan tidak menemui apa-apa yang bernilai.
Cari fail yang mengandungi kata kunci technawi dalam kandungan fail:
Lihat satu demi satu dan cari bendera keempat {7845658974123568974185412 dalam /etc/mysql/conf.d/credentials txt }, dan satu set nombor akaun technawi/3vilH@ksor:
Gunakan nombor akaun technawi/3vilH@ksor untuk berjaya log masuk. kepada sistem:
Semak flag.txt sekali lagi dan dapatkan bendera kelima{5473215946785213456975249}:
A permulaan, bendera bukan untuk saya bermain dengan mesin sasaran Satu-satunya matlamat adalah untuk meningkatkan kuasa. Apabila saya hendak menyemak versi kernel dan menyediakan exp yang sepadan, saya teringat bahawa saya telah melihat fail .sudo_as_admin_successful dalam direktori home/ technawi:
Wah, anda bertuah Ini menunjukkan bahawa technawi boleh menggunakan kata laluan anda sendiri untuk bertukar kepada pengguna Root:
Itu sahaja, semua pengumpulan bendera selesai dan keistimewaan berjaya dinaikkan!
Atas ialah kandungan terperinci Apakah strategi dron sasaran JIS-CTF_VulnUpload?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!