Ang Linux at Unix based na mga operating system ay naging sentro ng mga larangan ng Information Security, Network Security, Cryptography, atbp. Ang mga ito ay may kasamang malawak na iba't ibang tool na sinadya para sa mga layunin ng cyber security.
Tingnan natin ang tatlong ganoong tool: Aircrack-ng, Jack The Ripper, at Radare2.
Aircrack-ng Suite
Ang Aircrack-ng suite ay marahil ang pinakamalawak na ginagamit na hanay ng WiFi network sniffing at mga tool sa pagkuha ng password. Nilalayon nitong basagin ang mga password ng wireless network ng IEEE 802.11 protocol, na kadalasang pinoprotektahan ng mga pamantayan ng Wifi Protected Access (WPA) o Wifi Protected Access 2 (WPA2) at na-authenticate ng Pre-Shared Key (PSK) na paraan ng pagpapatunay.
Nag-aalok ito ng mga hiwalay na programa para sa pagsubaybay sa katayuan ng mga device sa network, pagkuha ng mga packet at paglalaglag sa mga file, pag-crack ng mga password, atbp.
Tandaan na ang pag-crack ng WPA/WPA2 gamit ang mga crypto-algorithm ay natagpuan ng mga mananaliksik na halos imposible. Samakatuwid, ang paraan upang i-crack ang WPA/WPA2 ng mga programa tulad ng aircrack-ng, ay Brute Force at nangangailangan ng diksyunaryo ng mga password upang ma-crack ito. Nangangahulugan iyon na maaari lamang nitong i-crack ang password kung ang password ay isang salita sa diksyunaryo.
Madali mong mai-install ang Aircrack-ng sa iyong system gamit ang installer script na ibinigay ng packagecloud.io. Buksan ang terminal, at patakbuhin ang mga sumusunod na command batay sa uri ng iyong Linux OS.
Sa mga distribusyon na nakabatay sa Debian, patakbuhin ang sumusunod na command:
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.deb.sh | sudo bash
Para sa Red-hat Package Manager (RPM), patakbuhin ang sumusunod na command:
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.rpm.sh | sudo bash
Ngayon subukan nating i-crack ang password ng isang lokal na Wi-Fi network gamit ang Aircrack-ng.
Una sa lahat, patakbuhin ang utos iwconfig
upang mahanap ang pangalan ng iyong wireless network interface.
iwconfig
dito, wlp2s0
ay ang pangalan ng aking wireless interface. ESSID, ibig sabihin, ang pangalan ng network ay "tmp", na siyang pangalan ng Wifi network kung saan ako nakakonekta.
Gagamitin natin ang airmon-ng
command upang simulan ang isang network monitor interface sa wlp2s0
.
sudo airmon-ng simulan ang wlp2s0
Hanapin ang linya sa dulo upang mahanap ang interface ng monitor mode. Sa halimbawa sa itaas, ito ay mon0
. Sisimulan na natin ngayon ang pagkuha ng mga network packet sa pamamagitan ng pagpapatakbo ng airodump-ng
sa mon0
.
sudo airodump-ng mon0 -w log
Nagpapakita ito ng monitor ng mga network packet na nakuha mula sa iba't ibang network. Ang -w log
bahagi ay para sa pag-save ng mga packet ng network sa mga file ng log. Ang prefix ng mga log file ay ang bahaging tinukoy pagkatapos -w, sa kasong ito ay 'log'.
Para makuha ng program ang passphrase hash key, dapat maganap ang isang WPA handshake sa network, ibig sabihin, dapat subukan ng isang user na kumonekta dito. Maaaring idiskonekta ng user ang kanyang Wifi, at muling kumonekta dito. Sa kanang sulok sa itaas ngayon, inaabisuhan nito na nahuli ang isang WPA handshake.
Ngayon, pindutin Ctrl + C
upang wakasan ang dump. Maaari mong makita ang nabuong mga log file sa kasalukuyang folder.
Ang susunod at huling hakbang ay ang patakbuhin ang aircrack-ng gamit ang isang diksyunaryo upang makita kung aling salita ang tumutugma sa na-intercept na hash key mula sa handshake.
aircrack-ng log-01.cap -w tmpdict.txt
Dito log-01.cap ay ang logfile na nabuo ng airodump-ng
utos at tmpdict.txt ay ang file ng diksyunaryo. Maraming malalaking diksyunaryo ang available online na maaaring ma-download at magamit dito.
Upang pumili ng target na network, ipasok ang index number para sa network mula sa listahan ng mga network na ipinapakita sa screen.
Kung ang isang susi ay itinugma mula sa diksyunaryo, ito ay titigil at ipapakita ang sumusunod na mensahe.
Ito ay malinaw na sa kaso ng mas malalaking mga file ng diksyunaryo, ang programa ay magdadala ng mas maraming oras upang tumakbo, dahil sinusuri nito ang bawat entry sa diksyunaryo.
Tulad ng nabanggit dati, ang password ay maaari lamang ma-crack kung ito ay nasa file ng diksyunaryo. Ang seguridad ng WPA ay sapat na malakas na ang paggamit ng anumang crypto algorithm ay hindi magbibigay-daan sa pag-crack ng password. Kaya naman, magandang kasanayan ang magkaroon ng malakas na mahabang password na may maraming espesyal na character sa iyong Wifi device, nang sa gayon ay hindi kailanman magtatagumpay ang anumang uri ng aktibidad sa pag-crack ng password.
John The Ripper
Ang John the Ripper ay isang tool na ginagamit upang basagin ang mahihinang Unix password. Ito ay isang napakadaling gamitin na tool na ginagamit sa mga file ng password. Ito ay tumatakbo sa tatlong mga mode.
Single mode
Sinusuri ang lahat ng mga field ng GECOS para sa password, ibig sabihin, tingnan ang password sa impormasyon ng user account; user name, pangalan, apelyido, atbp.
sudo john --single /etc/shadow
Wordlist Mode
Sinusuri ang password sa bawat entry mula sa isang wordlist (diksyonaryo) file.
sudo john --wordlist=passlist.txt /etc/shadow
Dito, ang password ng user na 'user3' ay "admin". Na-crack ito ni John dahil nasa passlist.txt file ang pariralang 'admin'.
Incremental Mode
Suriin ang lahat ng posibleng kumbinasyon para sa isang naka-configure na hanay. Bilang default, isinasaalang-alang nito ang lahat ng character sa ASCII character set at ang lahat ng haba mula 0 hanggang 13. Hindi na kailangang sabihin, depende sa naka-configure na hanay, ang mode na ito ay maaaring tumagal ng napakalaking oras upang tumakbo.
Maaaring baguhin ang configuration para dito /etc/john/john.conf
file.
sudo john --incremental /etc/shadow
Radare2
Ang Radare2 (alias r2) ay isang reverse engineering tool para sa Linux. Maaari itong i-disassemble, i-debug ang isang executable binary file, na may malaking listahan ng mga opsyon upang manipulahin ang data sa runtime.
Tingnan natin kung paano i-disassemble ang isang napakaliit na C program gamit ang r2. Tandaan na ang isang pangunahing pag-unawa sa wika ng pagpupulong ay kinakailangan upang magamit ang tool.
Una, lumikha ng isang maliit na C program sa alinman sa vim o anumang editor na gusto mo.
/*test.c*/ #include int main() { int i = 0; printf("%d\n", i); bumalik 0; }
Tulad ng nakikita mo, ang lahat ng ginagawa ng program na ito ay iimbak ang digit 0 sa isang variable, at i-access ang variable upang i-print ito.
Isasama natin ngayon ang programa.
gcc test.c -o test
Ang isang maipapatupad na file ay nilikha sa kasalukuyang direktoryo na may pangalang 'pagsubok'. Patakbuhin ito upang makita ang output na '0'.
./pagsusulit
I-install natin ang r2 ngayon. Ang pangalan ng package sa Ubuntu at mga katulad na distribusyon ay radare2.
sudo apt install radare2
Tandaan: Para sa mga mas lumang bersyon ng Ubuntu (bersyon 14.04 at mas mababa), kailangan mong gamitin apt-get
dapat gamitin sa halip na apt
.
Sisimulan na natin ang r2 command prompt gamit ang ating executable file, 'test'.
pagsubok ng r2
Upang makakuha ng listahan ng mga subcommand, ilagay ?
. Hal. para makakuha ng listahan ng mga subcommand para sa command a
, pumasok a?
a?
Tatakbuhin namin ang subcommand aa
, na susuriin ang kumpletong binary file. Hindi ito maglalabas ng anuman. Ngunit pagkatapos pag-aralan ang binary, maaari nating gamitin ang p?
mga subcommand upang i-disassemble ang code.
Susunod, lumipat kami sa pangunahing
function ng programa. Ang bawat executable C program ay mayroong pangunahing
gumana bilang panimulang punto nito.
s pangunahing
Makikita mo na binago ng prefix ng prompt ang kasalukuyang memory address, ibig sabihin, hinahangad na ngayon ang program sa address ng function. pangunahing
.
Susunod na ginagamit namin ang subcommand pdf
, na magpi-print ng disassembly ng isang function. Tinatawag namin ito ng sym.main
, na siyang pangalan ng pangunahing function sa assembly language.
pdf sym.main
Tulad ng nakikita natin sa screenshot sa itaas, mayroon kaming kumpletong disassembly ng aming C program. Maaari na nating suriin kung ano ang ginagawa ng programa sa pamamagitan ng pagbabasa ng pagpupulong.
Halimbawa, mov dword [rbp-0x4], 0x0
ay pagtatalaga ng halaga (0) sa isang lokasyon ng memory rbp – base pointer, 0x4 — Kinakailangan ang laki ng memory para sa isang integer.
Meron kami tumawag sa sym.imp.printf
, na magpi-print ng mga nilalaman ng rehistro eax
, ibig sabihin, ang halaga 0.
Mayroong maraming higit pang mga pagpipilian para sa pagmamanipula at pag-debug ng daloy ng isang programa sa r2. Maaari mong subukan ang iba pang mga opsyon na ipinapakita kasama ng ?
utos. Upang i-save ang anumang log o disassembly na output sa isang file, maaari mong i-pipe ang output tulad ng sa ibaba:
pdf main > main.s
Ito ang pangkalahatang-ideya ng ilan sa pinakamalawak na ginagamit na tool sa pag-hack sa Linux. Kung nakita mong nakakatulong ang page na ito, siguraduhing ibahagi ito sa iyong mga paboritong online na komunidad.