Monday, December 28, 2009

Key Win7

Win 7 pro
HW886-4R7HC-H9T3D-G6JMG-V8FJ8

win 7 Enterprise
FHKXR-WCPQW-D644P-R2BJQ-6KHV7

Key Win7 : BR2KH-T22XP-Q4JH7-TCF9T-C2MYF

Thursday, December 24, 2009

Cấu hình dịch vụ xinetd

Nguồn: http://linux.web.cern.ch/linux/scientific4/docs/rhel-rg-en-4/s1-tcpwrappers-xinetd.html

1. Khái niệm
xinetd daemon (viết tắt của eXtended InterNET Daemon) là một TCP wrapped super service, để kiểm soát truy cập một tập con những dịch vụ mạng thông dụng như: FTP, IMAP và Telnet, ... Nó cũng cung cấp những tuỳ chọn cấu hình xác định để kiểm soát truy cập, logging, binding, redirection và việc sử dụng tài nguyên

Khi client thử kết nối đến một dịch vụ mạng được kiểm soát bởi xinetd, nó nhận được yêu cầu và kiểm tra bất kỳ truy cập TCP wrappers nào. Nếu truy cập được cho phép, xinetd xác nhận rằng kết nối được cho phép dưới access rules cho dịch vụ đó, và dịch vụ đó được gán một lượng tài nguyên xác định được định nghĩa trong rules. Sau đó một instance của dịch vụ yêu cầu được khởi tạo và trao sự kiểm soát kết nối cho nó. Khi kết nối được thiết lập, xinetd không gây bất cứ trở ngại nào trong việc giao tiếp giữa client host và server nữa.

2. Các files cấu hình cho xinetd
Những files cấu hình cho xinetd như sau:
/etc/xinetd.conf - File cấu hình toàn cục
Thư mục /etc/xinetd.d - thư mục chứa tất cả các file cấu hình cho mỗi dịch vụ xác định

  • File cấu hình /etc/xinetd.conf

xinetd.conf chứa đựng các cấu hình chung cho tất cả các dịch vụ được kiểm soát bởi xinetd. Nó chỉ được đọc khi dịch vụ xinetd được khởi tạo, do đó bất kỳ thay đổi nào trong cấu hình, bạn đều phải restart (hoặc reload) xinetd để có hiệu lực. Dưới đây là ví dụ cho Fedora 8:
Code:
 defaults
{
log_type = SYSLOG daemon info
log_on_failure = HOST
log_on_success = PID HOST DURATION EXIT

cps = 50 10
instances = 50
per_source = 10
}

includedir /etc/xinetd.d

Ý nghĩa của các tham số:
log_type: SYSLOG authpriv: chỉ định đầu ra của service log. Bạn có thể gửi nó đến SYSLOG
log_on_success: Cấu hình cho việc log nếu kết nối thành công. HOST name và Process ID sẽ được log vào /var/log/secure
log_on_failure: cấu hình cho việc log khi kết nối bị dropped hoặc không được phép truy cập /var/log/secure
cps: giới hạn tỷ lệ các kết nối. Bao gồm 2 tham số. Tham số đầu tiên là giới hạn số lượng kết nối trong 1s. Nếu tỷ lệ các kết nối cao hơn giá trị này, dịch vụ sẽ tạm thời bị disabled. Tham số thứ 2 là thời gian chờ (tính bằng s) để enable lại dịch vụ sau khi nó bị disabled. Giá trị mặc định là 50 connections và thời gian nghỉ là 10s
instances: số lượng lớn nhất các requests mà xinetd có thể handle tại một thời điểm
per_source: giới hạn số lượng kết nối cho mỗi địa chỉ nguồn
includedir: đọc các file cấu hình cho các dịch vụ khác nằm trong thư mục /etc/xinetd.d

  • Thư mục /etc/xinetd.d

Thư mục này chứa đựng các file cấu hình cho mỗi dịch vụ được quản lý bởi xinetd. Cũng như xinetd.conf, thư mục này cũng chỉ được đọc khi xinetd được khởi tạo. Để bất kỳ thay đổi này có hiệu lực, bạn phải khởi động lại dịch vụ xinetd
Định dạng của các file nằm trong thư mục /etc/xinetd.d cũng sử dụng quy ước tương tự như /etc/xinetd.conf. Lý do chính để cấu hình của mỗi dịch vụ được lưu trong 1 file riêng biệt là nhằm tạo sự dễ dàng trong việc tuỳ biến, cũng như đỡ ảnh hưởng đến các dịch vụ khác

Ví dụ về rsync:
Code:
 # default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

Ý nghĩa các tham số:
service: định nghĩa tên dịch vụ, luôn phải thuộc /etc/services
disable: dịch vụ có được active hay không
flags: Gán thuộc tính cho kết nối.
socket_type: loại socket mạng. Trường này có thể nhận các giá trị: stream, dgram, raw
wait: định nghĩa dịch vụ là single-threaded (yes) hay multi-threaded (no)
user: người dùng có quyền chạy dịch vụ đó. root hoặc nobody thường được dùng ở đây.
server: đường dẫn của dịch vụ
server_args: chỉ định các tham số đưa vào cho server. Trong ví dụ này: rsync là một daemon nên yêu cầu đưa vào tuỳ chọn --daemon
log_on_failure: định nghĩa các tham số logging được thêm vào với những gì đã định nghĩa trong xinetd.conf

Làm việc với xinetd
Khởi động dịch vụ:
Code:
# /etc/init.d/xinetd start

Dừng dịch vụ:
Code:
# /etc/init.d/xinetd stop

Xác định xem xinetd có đang chạy hay không
Code:
 # /etc/init.d/xinetd status
xinetd (pid 2110) is running...

Khởi động lại dịch vụ
Code:
# /etc/init.d/xinetd restart


Tất cả về Linux swap space

Nguồn: http://www.linux.com/feature/121916

Khi máy tính cần chạy những chương trình lớn hơn khả năng có thể của bộ nhớ vật lý (RAM), hệ điều hành sẽ sử dụng một công nghệ có tên gọi swapping. Nói nôm na thì công nghệ này sẽ dùng đến những mảng bộ nhớ tạm được lưu trên đĩa cứng, trong khi phần dữ liệu khác vẫn được chuyển vào RAM. Công nghệ này giúp bạn quản lý việc hoán đổi (swapping) tốt hơn cũng như tăng hiệu năng sử dụng.

Linux chia bộ nhớ vật lý thành các pages. swapping là một tiến trình thực hiện việc copy một page của bộ nhớ đến một không gian đã được cấu hình trước trên đĩa cứng (gọi là swap space), để giải phóng các pages của bộ nhớ. Tổng dung lượng của RAM và không gian hoán đổi (swap space) chính là tổng số bộ nhớ ảo (virtual memory)

swapping cần thiết vì 2 lý do:
1. Khi hệ thống yêu cầu một lượng bộ nhớ nhiều hơn mức RAM cho phép, chức năng hoán đổi của kernel sẽ đẩy bớt các pages được dùng ít hơn ra ngoài và gửi lượng bộ nhớ cho ứng dụng đang cần ngay lập tức.
2. Có một số pages quan trọng được sử dụng bởi 1 ứng dụng trong suốt quá trình startup, có thể chỉ được dùng cho khởi tạo thôi, sau đó không bao giờ dùng lại nữa, hệ thống có thể swap out những pages này ra, giải phóng bộ nhớ cho những ứng dụng khác, hoặc cho việc cache đĩa.

Tuy nhiên, swapping có một bất lợi. Tốc độ truy cập đĩa (milliseconds) chậm hơn từ 10 đến 1000 lần so với tốc độ truy cập RAM (nanoseconds). Thỉnh thoảng sẽ xảy ra sự trao đổi quá mức, kiểu như: một pages vừa được swapped out, ngay sau đó lại
swapped in rồi lại swapped out và cứ thế. Trong trường hợp này, hệ thống vừa phải vật lộn để tìm những phần bộ nhớ rỗi, vừa phải giữa cho các ứng dụng kia vẫn chạy. Cách tốt nhất trong tình huống này là tăng RAM lên.

Có 2 loại swap space, đó là: swap partition và swap file. swap partition là một phân vùng độc lập nằm trên đĩa cứng, chỉ có mục đích là hoán đổi (swapping), không có file nào khác nằm trên đó. swap file là một file riêng biệt nằm trên hệ thống, nó có thể nằm giữa hệ thống của bạn và các file dữ liệu

Để xem swap space trên hệ thống, bạn có thể dùng lệnh swapon -s
Code:
 $ swapon -s
Filename Type size Used Priority
/dev/sda9 partition 1132540 0 -1

Mỗi dòng là một swap space tách biệt trên hệ thống của bạn. Type chỉ ra rằng swap space là partition hay file. Filename như bạn thấy là sda9 (partition). size là kích cỡ tính bằng KB của swap space. Used là lượng swap hiện đang được dùng. Priority chỉ ra swap nào sẽ được dùng trước (nếu bạn có nhiều swap). Một điều thú vị là: nếu bạn mount 2 hoặc nhiều swap space trên 2 thiết bị khác nhau với cùng độ ưu tiên, hệ thống sẽ thực hiện xen kẽ việc swapping giữa 2 swap space này để tăng performance.

Thêm 1 swap partition vào hệ thống
+ Xác định partition nào sẽ lấy làm swap
Code:
 # fdisk -l
/dev/sda9 swap swap defaults 0 0

+ Tạo hệ thống file swap cho nó
Code:
# mkswap /dev/sda9

+ Kích hoạt nó ngay lập tức:
Code:
# swapon /dev/sda9

+ Xác nhận xem nó đã được dùng chưa bằng lệnh:
Code:
# swapon -s

Để mount swap space tự động khi boot, bạn chỉnh sửa /etc/fstab và thêm vào một dòng tương tự như:
/dev/sda9 swap swap defaults 0 0


Để kiểm tra xem swap space đã được mounted tự động chưa mà không cần reboot, bạn có thể gõ, swapoff -a, sau đó lại swapon -a và check bằng swapon -s

Swap file cũng hoàn toàn tương tự như swap partition. Thuận lợi của nó là không cần tìm một partition độc lập hoặc phân vùng lại đĩa cứng để thêm vào. Có thể tạo swap file bằng lệnh dd như sau:
Code:
dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Lệnh này tạo một file trống có kích thước 1048576 KB (1GB), với tên gọi swapfile

Tạo và mount nó:
Code:
 mkswap /swapfile
swapon /swapfile

Thêm một dòng vào /etc/fstab cũng tương tự như trên:
/swapfile swap swap defaults 0 0


Tôi nên dành bao nhiêu dung lượng cho swap space?
Không có một nguyên tắc nào cả, nhưng mọi người thường chia theo quy luật:
+ Hệ thống Desktop: nên để bằng 2*RAM - đủ để bạn chạy một số lượng lớn các ứng dụng
+ Server: cần ít hơn (có người cho rằng chỉ cẩn để bằng 1/2*RAM). Tuy nhiên bạn cần theo dõi swap space và tăng lượng RAM nếu cần thiết
+ Older desktop (hệ thống có ít RAM - 128 MB chẳng hạn): bạn có thể dành 3*RAM cho swap, hoặc có thể để 1GB.

Với Linux kernel 2.6 có 1 tham số mới là swappiness - để bạn có thể tweak cách mà Linux hoán đổi. Tham số này có giá trị từ 0 đến 100. Giá trị cao có nghĩa là nhiều paged được swapped, giá trị thấp có nghĩa là nhiều ứng dụng được giữ trong bộ nhớ - ngay cả khi chúng không làm gì cả (idle). Giá trị mặc định của swapiness là 60, bạn có thể thay đổi nó tạm thời (reboot mới có hiệu lực thật sự) bằng lệnh sau (với root):
Code:
echo 50 > /proc/sys/vm/swappiness


Nếu bạn muốn thay đổi vĩnh viễn, có thể chỉnh vm.swappiness trong /etc/sysctl.conf

Quản lý swap space là công việc cần thiết của người quản trị hệ thống. Một kế hoạch tốt kết hợp với việc sử dụng đúng đắn sẽ đem lại nhiều lợi ích. Đừng sợ thử nghiệm, hãy luôn luôn theo dõi hệ thống của bạn, chắc chắn bạn sẽ thu được những kết quả mong muốn.

QuanTA.

Tìm hiểu về umask

Nguồn:
http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
http://www.sun.com/bigadmin/content/submitted/umask_permissions.html

umask là gì?
umask được sử dụng để kiểm soát quyền mặc định của các files mới khi nó được tạo ra. umask gồm 4 chữ số trong hệ cơ số 8 (four-digit octal)

Gán umask mặc định như thế nào?
Bạn có thể gán umask mặc định trong /etc/bashrc hoặc /etc/profile cho tất cả các users. Phần lớn các distro đều gán là 0022 hoặc 0002.
Để gán umask cho một user xác định nào đó, bạn có thể chỉnh sửa ~/.bashrc của user đó và thêm vào dòng sau:
umask 022

Lưu lại, logout và login lại để thay đổi trên có hiệu lực.

0022 và 0002 nghĩa là gì?
umask mặc định 0002 được sử dụng cho normal user. Với mặt nạ (mask) này, quyền mặc định của thư mục sẽ là 775 và quyền mặc định của file sẽ là 664.

umask mặc định cho root là 0022, nghĩa là quyền mặc định của thư mục sẽ là 755 và quyền mặc định của file sẽ là 644.

Nôm na bạn có thể hiểu rằng: Trước khi file hoặc thư mục được tạo ra, quyền truy cập đối với chúng được xác định dựa vào hai giá trị: quyền truy cập cơ sở (base permissions) và mặt nạ (mask). Đối với thư mục, quyền truy cập cơ sở là 0777(rwxrwxrwx), còn đối với files là 0666 (rw-rw-rw).

Thiết lập giá trị mask như thế nào?
Giá trị "mask" được thiết lập nhờ lệnh umask. Tất cả các file và thư mục được tạo ra sau đó sẽ chịu ảnh hưởng của giá trị mask mới.

Để tính toán quyền truy cập thư mục với umask 022 (root user):
Quyền truy cập mặc định: 777
Giá trị umask: 022
Quyền truy cập cho phép: 755

Để tính toán quyền truy cập file với umask 022 (root user):
Quyền truy cập mặc định: 666
Giá trị umask: 022
Quyền truy cập cho phép: 644

Lấy một ví dụ đơn giản: Bạn cần gán umask để các files được tạo ra sau đó sẽ có permissions là 600.
Ta có:
Quyền truy cập mặc định: 666
Giá trị umask: 066
Quyền truy cập cho phép: 600

Code:
 $ umask 066
$ touch test.txt
$ ls -l test.txt
-rw------- 1 quanta quanta 0 2008-02-16 17:38 test.txt

Quyền truy cập cho phép là kết quả giữa phép toán sau:

Quyền truy cập cho phép = "quyền truy cập mặc định" AND (NOT (Giá trị umask))

Ví dụ:
Quyền truy cập mặc định: 666 = 110 110 110
Giá trị umask: 123 = 001 010 011
--> NOT (Giá trị umask) = NOT (001 010 011) = 110 101 100
Quyền truy cập cho phép = 110 110 110 AND 110 101 100 = 110 100 100 = 644


Friday, December 18, 2009

Nmap

nmap -p445 --script=smb-security-mode 192.168.1.1
nmap -p445 --script=smb-os-discovery 192.168.1.1

nmap -p445 --script=smb-enum-shares 192.168.1.1
nmap -v -p445 --script=smb-enum-shares --script-args=smbuser=test,smbpass=test 192.168.1.1

nmap -v -p445 --script=smb-enum-users 192.168.1.1

nmap -v -p445 --script=smb-enum-sessions 192.168.1.1

nmap -p445 --script=smb-enum-processes --script-args=smbuser=test,smbpass=test ip

nmap -p445 --script=smb-system-info 192.168.1.1

nmap -p445 --script=smb-check-vulns 192.168.1.1


Scan 1: syn stealth, ping both, ports 1-65535
# nmap -sS -PB -p 1-65535 -T Insane 192.168.0.99


Scan 2: null scan, ping both, fast ports, os detect
# nmap -sN -PB -F -O -T Insane 192.168.0.99


Scan 3: xmas scan, ping both, ports 1-1024, os detect
# nmap -sX -PB -p 1-1024 -O -T Insane 192.168.0.99


Scan 4: connect scan, no ping, fast ports

# nmap -sT -P0 -F -O -T Insane 192.168.0.99


Scan 5: xmas scan, ping both, fast ports, insane timing, spoofed decoy IPs 
# nmap -sX -PB -F -T Insane -D 192.168.0.1,192.168.0.254,192.168.0.199 192.168.0.99

or using the ME option:

# nmap -sX -PB -F -T Insane -D 192.168.0.1,192.168.0.254,ME,192.168.0.199 192.168.0.99

Tuesday, December 15, 2009

The Network Path Was Not Found

A solution (there could be several causes)

*netsh winsock reset

* On the target machine (the one you’re trying to connect to) open up Services, under Administrative Tools in the Start Menu.
* Scroll down to the Computer Browser service.
* If it is Disabled or set to Manual, set it to Automatic.
* Then start it. It may stop immediately again, but this is OK.
* At this point try to connect to the target machine.

If it still doesn’t work, you can try the following:

* open up Network Connections, under Control Panel.
* Right click on your network adapter and click on Properties.
* Click on Internet Protocol (TCP/IP), then click on Properties.
* Click on Advanced, and click on the WINS tab.
* Even if it is set to Default, set the radio button to Enable NetBIOS over TCP/IP.
* Press OK on each screen until everything’s closed.
* Go back to the client machine and try again.
* You should be able to connect!

If it still doesn’t work:

* Go back to the Services window and find the service named Routing and Remote Access.
* Double-click on it, set it to Manual, and stop it.
* Close Services and try to connect from your client machine again.

p/s: Chú ý kiểm tra tắt netware trên máy client.

Monday, December 14, 2009

Monday, December 7, 2009

Analyzing Malicious Documents Cheat Sheet

This cheat sheet outlines tips and tools for reverse-engineering malicious documents, such as Microsoft Office (DOC, XLS, PPT) and Adobe Acrobat (PDF) files.

General Approach

  1. Locate potentially malicious embedded code, such as shellcode, VBA macros, or JavaScript.
  2. Extract suspicious code segments from the file.
  3. If relevant, disassemble and/or debug shellcode.
  4. If relevant, deobfuscate and examine JavaScript, ActionScript, or VB macro code.
  5. Understand next steps in the infection chain.

Microsoft Office Binary File Format Notes

Structured Storage (OLE SS) defines a file system inside the binary Microsoft Office file.

Data can be “storage” (folder) and “steam” (file).

Excel stores data inside the “workbook” stream.

PowerPoint stores data inside the “PowerPoint Document” stream.

Word stores data inside various streams.

Tools for Analyzing Microsoft Office Files

OfficeMalScanner locates shellcode and VBA macros from MS Office (DOC, XLS, and PPT) files.

DisView disassembles bytes at a given offset of an MS Office file. (Part of OfficeMalScanner)

MalHost-Setup extracts shellcode from a given offset in an MS Office file and embeds it an EXE file for further analysis. (Part of OfficeMalScanner)

Offvis shows raw contents and structure of an MS Office file, and identifies some common exploits.

BIFF-Workbench shows raw contents and structure of an XLS file and supports editing and searching.

Office Binary Translator converts DOC, PPT, and XLS files into Open XML files (includes BiffView tool).

OfficeCat scans MS Office files for embedded exploits that target several known vulnerabilities.

Useful MS Office Analysis Commands

OfficeMalScanner file.doc scan brute Locate shellcode, OLE data, PE files in file.doc
OfficeMalScanner file.doc info Locate VB macro code in file.doc (no XML files)
OfficeMalScanner file.docx inflate Decompress file.docx to locate VB code (XML files)
DisView file.doc 0x4500 Disassemble shellcode at 0x4500 in file.doc
MalHost-Setup file.doc out.exe 0x4500 Extract shellcode from file.doc’s offset 0x4500 and create it as out.exe

Adobe PDF File Format Notes

A PDF File is comprised of header, objects, cross-reference table (to locate objects), and trailer.

“/OpenAction” and “/AA” (Additional Action) specifies the script or action to run automatically.

“/Names”, “/AcroForm”, “/Action” can also specify and launch scripts or actions.

“/JavaScript” specifies JavaScript to run.

“/GoTo*” changes the view to a specified destination within the PDF or in another PDF file.

“/Launch” launches a program or opens a document.

“/URI” accesses a resource by its URL.

“/SubmitForm” and “/GoToR” can send data to URL.

“/RichMedia” can be used to embed Flash in PDF.

“/ObjStm” can hide objects inside an Object Stream.

Be mindful of obfuscation with hex codes, such as “/JavaScript” vs. “/J#61vaScript”. (See examples)

Tools for Analyzing Adobe PDF Files

PDF StructAzer displays and modifies the structure and raw contents of the PDF file. (See user manual)

PDFiD identifies PDFs that contain strings associated with scripts and actions. (Part of Python PDF Tools)

PDF-parser identifies key elements of the PDF file without rendering it (Part of Python PDF Tools)

Origami is a Ruby framework for parsing, analyzing, modifying, and creating PDF files.

Sumatra PDF and MuPDF are lightweight and free viewers that may be used in place of Adobe Acrobat.

Pdftk tweaks PDFs and uncompresses page streams.

Malzilla can extract and decompress zlib streams from PDFs, and can help deobfuscate JavaScript.

Jsunpack-n can extract and decode JavaScript from pcap network captures, and can decode PDF files.

CWSandbox and Wepawet can automatically analyze some aspects of malicious PDF files.

Useful PDF Analysis Commands

pdfid.py file.pdf Locate script and action-related strings in file.pdf
pdf-parser.py file.pdf Show file.pdf’s structure to identify suspect elements
pdfscan.rb file.pdf Examine and display file.pdf’s structure (Usage)
pdftk file.pdf output out.pdf uncompress Uncompress page streams in file.pdf and save the result in out.pdf

Additional Malicious File Analysis Tools

McAfee FileInsight integrates a hex editor, calculator, disassembler, decoders, scripting support, etc.

ExeFilter can filter scripts from Office and PDF files.

VirusTotal can scan files with multiple anti-virus tools to identify some malicious documents.

References

Adobe Portable Document Format (PDF) Reference

Physical and Logical Structure of PDF Files

Methods for Understanding and Analyzing Targeted Attacks with Office Documents (video)

Analyzing MSOffice Malware with OfficeMalScanner (follow-up presentation)

PDF Security Analysis and Malware Threats

Malicious Origami in PDF (follow-up presentation)

Reverse-Engineering Malware cheat sheet

Post-Scriptum

Found this cheat sheet useful? Tweet it!

Special thanks for contributions and feedback to Pedro Bueno, Frank Boldewin, and Didier Stevens. If you have suggestions for improving this cheat sheet, please let me know.

This cheat sheet is distributed according to the Creative Commons v3 "Attribution" License. File version 1.5.

Take a look at my other security cheat sheets.


About the Author: Lenny Zeltser leads the security consulting practice at Savvis. His team provides security assessments, design, and operational assistance for business-critical IT infrastructure. Lenny also teaches malware analysis at SANS Institute, explores security topics at conferences and in articles, and volunteers as an incident handler at the Internet Storm Center.

An Illustrated Guide to the Kaminsky DNS Vulnerability

http://unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html