[译]用python来玩转Volume Shadow copies

原文地址:http://pen-testing.sans.org/blog/pen-testing/2013/04/12/using-volume-shadow-copies-from-python

Volume Shadow copies 提供管理员工具来访问Windows,包含最新删除的的文件,带锁的文件等。他们就像通道一样直达Windows文件系统,用来挖掘各种有价值的信息。
Volume Shadow copies对于渗透测试来说价值无限,他们包含很多有价值的信息。加入域管理员知道渗透测试要进行测试,删除password.txt怎么办?没问题。密码文件还存在Volume Shadow copies中等你挖掘。类似NTDS.DIT(AD数据库)这类文件会被系统锁住所以你没法获得他们。使用Volume Shadow copies可以解决问题。你可以创建一个新的Volume Shadow copies,然后抓取文件的copy,然后就可以掠夺域中的users了。
可以使用win32com模块和COM来和WIN32_ShadowCopy服务进行交互来做你想做的。参数在python中使用COM很麻烦,但是有现成的库了。
获得某个系统的Volume Shadow copies列表很简单。可以使用vssown.vbs,查询对应的python语句,然后转换成python代码。(vssown.vbs可以从这里下载http://ptscripts.googlecode.com/svn/trunk/windows/vssown.vbs)。然后创建一个object,连接到服务器,使用ExecQuery来获得系统的所有Volume Shadow Copies列表。然后可以使用循环来遍历每一个shadow copy,获得"DeviceObject"属性。需要使用"DeviceObject"属性来访问Volume Shadow Copies中的数据。
[img]htt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的图书管理系统的Python代码: ```python class Book: def __init__(self, title, author, isbn, num_copies): self.title = title self.author = author self.isbn = isbn self.num_copies = num_copies def get_title(self): return self.title def get_author(self): return self.author def get_isbn(self): return self.isbn def get_num_copies(self): return self.num_copies def set_num_copies(self, num_copies): self.num_copies = num_copies class Library: def __init__(self): self.books = [] def add_book(self, book): self.books.append(book) def find_book(self, title): for book in self.books: if book.get_title() == title: return book return None def remove_book(self, book): self.books.remove(book) def display_books(self): for book in self.books: print("Title:", book.get_title()) print("Author:", book.get_author()) print("ISBN:", book.get_isbn()) print("Number of Copies:", book.get_num_copies()) print("") def borrow_book(self, title): book = self.find_book(title) if book is not None and book.get_num_copies() > 0: book.set_num_copies(book.get_num_copies() - 1) print("Book has been borrowed.") else: print("Book is not available.") def return_book(self, title): book = self.find_book(title) if book is not None: book.set_num_copies(book.get_num_copies() + 1) print("Book has been returned.") else: print("Book was not found.") # Example usage: library = Library() book1 = Book("The Great Gatsby", "F. Scott Fitzgerald", "9780199536405", 5) book2 = Book("To Kill a Mockingbird", "Harper Lee", "9780061120084", 3) book3 = Book("The Catcher in the Rye", "J.D. Salinger", "9780316769488", 2) library.add_book(book1) library.add_book(book2) library.add_book(book3) library.display_books() library.borrow_book("The Great Gatsby") library.borrow_book("The Great Gatsby") library.borrow_book("The Catcher in the Rye") library.display_books() library.return_book("The Great Gatsby") library.display_books() ``` 这个代码包含了两个类:`Book` 和 `Library`。`Book` 类表示一本书,包含书名、作者、ISBN 号以及库存数量。`Library` 类表示一个图书馆,包含了可以添加、查找、删除、显示和借阅书籍的方法。您可以根据需要添加其他的方法或者属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值